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