zoukankan      html  css  js  c++  java
  • 递归方法

    最近做了一个递归方法,比较简单的
    费波那其数列的值,我写了一个递归方法如下
    public static Int64 f(int x)
            {
                if (x <= 2)
                    return 1;
                else
                    return f(x - 1) + f(x - 2);
            }
    x=40的时候需要5秒钟左右
    x=41的时候需要10秒钟左右
    x=50已经没有耐心等了

    我选择了另外一种方法,也是突然想到的迭代法,如下:
    int x;

    Int64 x = 1;
                Int64 y = 1;
                Int64 z = 2;
                for (int i = 4; i <= x; i++)
                {
                    x = y;
                    y = z;
                    z = x + y;
                }
                Console.WriteLine(z);
    x=1000,正常出现,没有时间延迟
    测试x=10000,结果溢出,没有时间延迟

    所以遇到类似问题千万要小心使用递归。
  • 相关阅读:
    接口测试
    JMeter 插件管理
    JMeter IP欺骗压测
    Maven初窥门径
    都是分号惹的祸 ORA-00911
    插拔式设计思想
    第七章、Ajango自带auth模块
    第七章、中间件续写
    第七章、中间件
    第六章、Cookies和Session
  • 原文地址:https://www.cnblogs.com/maomaokuaile/p/1581875.html
Copyright © 2011-2022 走看看