class Program
{
public static int Foo(int i)
{
Console.WriteLine(i);
if (i <= 0)
return 0;
else if (i > 0 & i <= 2)
return 1;
else
return Foo(i - 1) + Foo(i - 2);
}
static void Main(string[] args)
{
Console.WriteLine(Foo(6));
}
} 输出结果是:
6
5
4
3
2
1
2
3
2
1
4
3
2
1
2
8
请按任意键继续. . . 为什么最后是8 ? 能否一步一步的写给我看看编译器怎么运算到最后的?帮帮忙,谢谢。
{
public static int Foo(int i)
{
Console.WriteLine(i);
if (i <= 0)
return 0;
else if (i > 0 & i <= 2)
return 1;
else
return Foo(i - 1) + Foo(i - 2);
}
static void Main(string[] args)
{
Console.WriteLine(Foo(6));
}
} 输出结果是:
6
5
4
3
2
1
2
3
2
1
4
3
2
1
2
8
请按任意键继续. . . 为什么最后是8 ? 能否一步一步的写给我看看编译器怎么运算到最后的?帮帮忙,谢谢。
解决方案 »
- 有没有人用过7z的接口的,那个LZMA的几个参数改怎么填?
- C# 关闭word拼写和语法检查
- messagebox。show()问题
- Form三个关闭事件的差别。
- 用过vs2010负载测试的请进,帮我看看问题,在线等...
- 关于Button按钮
- c#程序中bin目录和obj目录中的文件有什么不同?
- 在使用FreeTextBox1.6.3的时候,为什么输入空格会显示问号呢????
- 急 请教winfrom问题 如何将SQL查询出的代码放入一个XSD数据集问题
- 获得win8.1的目录写权限问题
- NotifyIcon.BalloonTipText 能否加入超连接的文本.即可以点击指向一个WEB页面??
- Windows form刷新的问题,大家进来帮忙看看
x=1 y=1
x=2 y=1
x=3 y=1+1=2
x=4 y=1+2=3
x=5 y=2+3=5
x=6 y=3+5=8
1+2=3
是从那里来的?和Foo(i-1)+(Foo-2) 有什么联系?
5
4
3
2
1
x=1;y=1
2
x=2;y=1
3
2
1
x=1;y=1
x=3;y=2
4
3
2
1
x=1;y=1
2
x=2;y=1
x=5;y=3
8
foo(1) = 1foo(6) = 5 + 3 = 8
的算法
x=0时 y=0
x=1 y=1
x=2 y=1
x=3 y=1+1=2
x=4 y=1+2=3
x=5 y=2+3=5
x=6 y=3+5=8输入Foo(x) = y