请问大家帮忙看一个算法

public static int Foo(int i)
{
if (i <= 0)
return 0;
else if (i <= 2)
return 1;
else
{
return Foo(i - 1) + Foo(i - 2);
}
}

请问这个算法要怎么理解,它的执行过程是怎么样的呢?

为什么Foo(6)等于8呢?
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2013-03-21
  • 打赏
  • 举报
回复
1 1 2 3 5 8 13 21... 第6个可不是8吗,Foo(6)=8
gxingmin 2013-03-21
  • 打赏
  • 举报
回复
这不是 斐波那契数列 吗? 就是从第三个数开始,每个数都等于前两个数之和 所以上面是个递归算法,前两个数都是1,第三个数开始每个数都等于前两个数之和即=Foo(n-1)+Foo(n-2)
  • 打赏
  • 举报
回复
这难道不是递归?
  • 打赏
  • 举报
回复
明白了,谢谢

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧