首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教大家帮忙看一个算法

2013-03-25 
请问大家帮忙看一个算法 public static int Foo(int i){if (i 0)return 0else if (i 2)return 1el

请问大家帮忙看一个算法
 public static int Foo(int i)
        {
            if (i <= 0)
                return 0;
            else if (i <= 2)
                return 1;
            else
            {
                return Foo(i - 1) + Foo(i - 2);
            }
        }

请问这个算法要怎么理解,它的执行过程是怎么样的呢?

为什么Foo(6)等于8呢?
[解决办法]
这不是 斐波那契数列 吗?
就是从第三个数开始,每个数都等于前两个数之和
所以上面是个递归算法,前两个数都是1,第三个数开始每个数都等于前两个数之和即=Foo(n-1)+Foo(n-2)

热点排行