哪位大哥能帮我分析下啊?这个递归算法,我不知道为什么
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
Console.WriteLine(Foo(4).ToString());
}
//
static int a;
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else a=Foo(i -1) + Foo(i - 1);
return a;
}
}
------解决方案--------------------Foo(2) = 1;
Foo(3) = Foo(2) + Foo(2) = 1 + 1 = 2;
Foo(4) = Foo(3) + Foo(3) = 2 + 2 = 4;
------解决方案--------------------1,2,4,8,16
1,1+1,2+2,4+4,8+8