日期:2014-05-19  浏览次数:20785 次

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