递归

2018-09-18 22:29:56 +08:00
 Zzzp

今天学习了下递归,但是很懵,有没有大神来指点下;能不能解释下是怎么运行的?谢谢! #include <stdio.h> int fun(int x) { if(x>1) return x+fun(x-1); else return x; } int main() { int sum; sum=fun(100); printf("sum=%d\n",sum); }

2753 次点击
所在节点    C
9 条回复
whoami9894
2018-09-18 23:06:11 +08:00
x=5
返回 5+fun(4)
fun(4)=4+fun(3)
fun(3)=3+fun(2)
fun(2)=2+fun(1)
fun(1)=1
sum=5+4+3+2+1
GeruzoniAnsasu
2018-09-18 23:47:38 +08:00
递归
C/C++/Obj-C • Zzzp • 40 分钟前 • 最后回复来自 whoami9894 1
c 语言
C/C++/Obj-C • Zzzp • 14 小时 51 分钟前 • 最后回复来自 FrankHB 29
数组
C/C++/Obj-C • Zzzp • 42 天前 • 最后回复来自 V3EX17 9
用 switch 比较两个数的大小
问与答 • Zzzp • 58 天前 • 最后回复来自 chengyiqun 2
C 语言
C/C++/Obj-C • Zzzp • 61 天前 • 最后回复来自 jzq526 15
Justin13
2018-09-19 08:38:55 +08:00
替代法,用函数体替换函数调用,一步步理解
hahaDK
2018-09-19 08:58:57 +08:00
多画画图 就能理解了
xiri
2018-09-19 09:09:13 +08:00
看了下楼主所有的主题,我不想说啥了,,,,,,
zhangyichent
2018-09-19 09:13:41 +08:00
先别用 100 嘛,可以用 2/3/4/5 这种比较小的数先在纸上算一遍嘛,然后规律不自然就出来了
Chenamy2017
2018-09-19 09:20:46 +08:00
实际上就是函数的嵌套调用,楼上说的对,用 2/3/4 这种小数字在纸上把函数调用走一边就好了
fighterlyt
2018-09-19 10:46:30 +08:00
程序员需要有数据基础,递归在逻辑上等价于**数学归纳法**
fyyz
2018-09-21 11:56:40 +08:00
开个单步调试追踪一下就能看懂了,其实很简单的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490615

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX