问答详情
源自:5-7 递归函数(一)

C语言入门--关于递归函数

第二次调用为什么会跟第一次的值不一样呢?总想不明白。又没有n-1=n

提问者:qq_照遍天宇_04160908 2016-10-22 10:32

个回答

  • C_plus
    2016-10-22 13:39:36
    已采纳

    第一次调用时n=10,就会return getWordNumber(n-1)+n,也就是getWordNumber(10-1)+10;

    而getWordNumber(10-1)返回的是getWordNumber(9-1)+9;

    ...一直往下减

    getWordNumber(2)返回getWordNumber(2-1)+2;

    getWordNumber(1)返回1;

    所以getWordNumber(10)就等于:

    getWordNumber(1)+2+3+4+5+6+7+8+9+10=55.返回什么可以直接用返回值替换原来的式子,就容易看明白了!

  • 慕虎6185129
    2016-10-22 16:09:41

       getWordNumber(10)

    =getWordNumber(9)+10

    =(getWordNumber(8)+9)+10

    =((getWordNumber(7)+8)+9)+10

    。。。。。。

    =getWordNumber(1)+2+3+···+9+10

    =1+2+3+···+9+10

    =55