Zzzp
V2EX  ›  C

递归

  •  
  •   Zzzp · Sep 18, 2018 · 4297 views
    This topic created in 2977 days ago, the information mentioned may be changed or developed.

    今天学习了下递归,但是很懵,有没有大神来指点下;能不能解释下是怎么运行的?谢谢! #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); }

    9 replies  •  2018-09-21 11:56:40 +08:00
    whoami9894
    whoami9894
    Sep 18, 2018 via Android
    1
    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
    GeruzoniAnsasu
    Sep 18, 2018
    2
    递归
    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
    Justin13
    Sep 19, 2018 via Android
    3
    替代法,用函数体替换函数调用,一步步理解
    hahaDK
    hahaDK
    Sep 19, 2018 via iPhone
    4
    多画画图 就能理解了
    imkuang
    imkuang
    Sep 19, 2018 via Android❤️1
    5
    看了下楼主所有的主题,我不想说啥了,,,,,,
    zhangyichent
    zhangyichent
    Sep 19, 2018
    6
    先别用 100 嘛,可以用 2/3/4/5 这种比较小的数先在纸上算一遍嘛,然后规律不自然就出来了
    Chenamy2017
    Chenamy2017
    Sep 19, 2018
    7
    实际上就是函数的嵌套调用,楼上说的对,用 2/3/4 这种小数字在纸上把函数调用走一边就好了
    fighterlyt
    fighterlyt
    Sep 19, 2018
    8
    程序员需要有数据基础,递归在逻辑上等价于**数学归纳法**
    fyyz
    fyyz
    Sep 21, 2018
    9
    开个单步调试追踪一下就能看懂了,其实很简单的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2731 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 10:24 · PVG 18:24 · LAX 02:24 · JFK 05:24
    ♥ Do have faith in what you're doing.