public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(4));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
} 在这个输入四,到底也没有明白,怎么执行的,请教达人解释一下,跟踪了一下,不是很理解
{
public static void Main()
{
Console.WriteLine(Foo(4));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
} 在这个输入四,到底也没有明白,怎么执行的,请教达人解释一下,跟踪了一下,不是很理解
public static int Foo(int i) {
if (i <= 0)
return 0;
else if (i > 0 && i <= 2)
return 1;
else
return Foo(i - 1) + Foo(i - 2);
}过程如下:
Foo(4) -> Foo(3)+Foo(2) -> (Foo(2)+Foo(1))+1 -> (1+1)+1 -> 3
总变化:
Foo(4)=Foo(3)+Foo(2)=Foo(2)+Foo(1)+Foo(2)=Foo(2)+Foo(0)+Foo(-1)+Foo(2)
最后=1+0+0+1=2,所以最后输出的结果是2完了,有点儿晕,给分吧