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

C#递归算法请问

2012-01-09 
C#递归算法请教?一列数的规则如下:1、1、2、3、5、8staticvoidMain(string[]args){Console.WriteLine(Foo(5))C

C#递归算法请教?
一列数的规则如下:   1、1、2、3、5、8
static   void   Main(string[]   args)
                {
                        Console.WriteLine(Foo(5));
                        Console.WriteLine( "OK ");
                }
                public   static   int   Foo(int   i)
                {
                        if   (i   <   3)   return   1;      
                        else   return   Foo(i   -   1)   +   Foo(i   -   2);
                }    
程序运行结果是5 ,请问程序是怎样得出结果5??
我用VS2005一步步执行,也看不明白,结果是怎样得来的?
麻烦大家给出递归运行过程?

[解决办法]
*Foo(5)
Foo(5)=Foo(4)+Foo(3)
*Foo(4)
Foo(4)=Foo(3)+Foo(2)
*Foo(3)
Foo(3)=Foo(2)+Foo(1)
*Foo(2)
Foo(2)=1
*Foo(1)
Foo(1)=1
*Foo(2)
Foo(2)=1
*Foo(3)
Foo(3)=Foo(2)+Foo(1)
*Foo(2)
Foo(2)=1
*Foo(1)
Foo(1)=1

热点排行