递归代码详解

来源:5-7 递归函数(一)

大盗无风不起浪

2015-01-20 10:09

getWordNumber(n - 1) + n - 1,这段代码没理解

写回答 关注

3回答

  • sca11
    2015-08-03 23:24:33

    这是返还给  getWordNumber(1)的值,就是return 1   将1返还到getWordNumber(1)中。

    例:

    abc(5)=abc(4)+n

    abc(4)=abc(3)+n

    abc(3)=abc(2)+n

    abc(2)=abc(1)+n

    abc(1)=1

    然后返换,先计算最后一个

    abc(1)等于1

    倒数第二行

    abc(2)=abc(1)+n  等于  abc(2)=1+ 2 =3

    倒数第三行

    abc(3)=abc(2)+n  等于  abc(3)= 3+3 =6      第一个3是abc(2)的值 , 第二个3是n的值,就是abc(n-1)中n的值,abc(3)=abc(2)+3  

    倒数第四行

    abc(4)=abc(3)

    sca11

    倒数第四行没写全。。后面的也没写了。。 应该都看得懂了吧

    2015-08-03 23:25:57

    共 1 条回复 >

  • linkin55
    2015-04-08 17:46:10

    1+1+2+3+4+5+6+7+8+9

    return getWordNumber(n-1)+n-1

    表示getWordNumber(n)比getWordNumber(n-1)多了个+n-1

    getWordNumber(n-1) - getWordNumber(n-1) = n-1


    sca11

    你理解错了,少年。 getWordNumber(n-1)+n 其中(n-1)是参数 +n 是上一层的内容。 getWordNumber(2-1)等价于getWordNumber(1) 将1的值赋给getWordNumber(n) 此时n的值为1。 执行getWordNumber(n) if语句判断 此时n等于1 所以执行 return 1 将1 返还到getWordNumber(1)中。 1+2+3+4+5+6+7+8+9+10 刚好55

    2015-08-03 23:38:06

    共 1 条回复 >

  • 未竟的守护者
    2015-01-20 11:02:32

    getWordNumber(n-1)是递归方法的运用,递归调用函数getWordNumber(),并每次计算前一天的单词量,把过程写成数学过程就形成了:(((((1)+2)+3)+...+(n-2))+n-1。即从最后一天的前一天(n-1)开始记录,一直到第一天为止。

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926212 学习 · 20797 问题

查看课程

相似问题