很简单的问题,谁来帮我解说一下c#的递归算法

beatil 2010-10-15 06:28:49
比如说斐波那契
1.1.2.3.5.8.13.21.34...........算第30位的数字

Protected int f(int n)
{
if(n>2)
{
return f(n-1)+f(n-2);
}
else
{
return 1;
}
}
Response.Write(f(30));

n=30,那么return f(29)+f(28);f(29)为什么就等于第29位的数字呢?

本人很菜,希望大家不要笑话
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beatil 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sweetqueen1 的回复:]
從30往下走
f(29)等于f(28) + f(27)//這裡得不到具體的值,继续往下走、、
f(28)等于f(27) + f(26)//這裡得不到具體的值,继续往下走、、
f(27)等于f(26) + f(25)//這裡得不到具體的值,继续往下走、、
f(26)等于f(25) + f(24)//這裡得不到具體的值,继续往下走、、
f(25)等于f(24) + f(23)//這裡得不到具……
[/Quote]

好,原来是这样!
sweetqueen1 2010-10-15
  • 打赏
  • 举报
回复
從30往下走
f(29)等于f(28) + f(27)//這裡得不到具體的值,继续往下走、、
f(28)等于f(27) + f(26)//這裡得不到具體的值,继续往下走、、
f(27)等于f(26) + f(25)//這裡得不到具體的值,继续往下走、、
f(26)等于f(25) + f(24)//這裡得不到具體的值,继续往下走、、
f(25)等于f(24) + f(23)//這裡得不到具體的值,继续往下走、、
f(24)等于f(23) + f(22)//這裡得不到具體的值,继续往下走、、
f(23)等于f(22) + f(21)//這裡得不到具體的值,继续往下走、、
f(22)等于f(21) + f(20)//這裡得不到具體的值,继续往下走、、
f(21)等于f(20) + f(19)//這裡得不到具體的值,继续往下走、、
f(20)等于f(19) + f(18)//這裡得不到具體的值,继续往下走、、
f(19)等于f(18) + f(17)//這裡得不到具體的值,继续往下走、、
f(18)等于f(17) + f(16)//這裡得不到具體的值,继续往下走、、
f(17)等于f(16) + f(15)//這裡得不到具體的值,继续往下走、、
f(16)等于f(15) + f(14)//這裡得不到具體的值,继续往下走、、
f(15)等于f(14) + f(13)//這裡得不到具體的值,继续往下走、、
f(14)等于f(13) + f(12)//這裡得不到具體的值,继续往下走、、
f(13)等于f(12) + f(11)//這裡得不到具體的值,继续往下走、、
f(12)等于f(11) + f(10)//這裡得不到具體的值,继续往下走、、
f(11)等于f(10) + f(9)//這裡得不到具體的值,继续往下走、、
f(10)等于f(9) + f(8)//這裡得不到具體的值,继续往下走、、
f(9)等于f(8) + f(7)//這裡得不到具體的值,继续往下走、、
f(8)等于f(7) + f(6)//這裡得不到具體的值,继续往下走、、
f(7)等于f(6) + f(5)//這裡得不到具體的值,继续往下走、、
f(6)等于f(5) + f(4)//這裡得不到具體的值,继续往下走、、
f(5)等于f(4) + f(3)//這裡得不到具體的值,继续往下走、、
f(4)等于f(3) + f(2)//這裏2<2不成立,走else,所以f(2)=1
f(3)等于f(2) + f(1))//這裏1<2不成立,走else,所以f(1)=1
然後再從下面往上返回
f(3)=2
f(4)=2+1
f(5)=3+2
這樣返回。。。就得到值了、、
阿非 2010-10-15
  • 打赏
  • 举报
回复
F9+F11

看懂之后,把递归换成循环 你就进步了。
beatil 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 symbol_bc 的回复:]
因为他是递归啊!f(29)等于f(28) + f(27)啊
[/Quote]

有点明白了,还能说的清楚点吗 -_-!!!
symbol_bc 2010-10-15
  • 打赏
  • 举报
回复
因为他是递归啊!f(29)等于f(28) + f(27)啊

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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