我不懂啊,为什么return getWordNumber(n-1)+n;

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

Foina

2016-01-31 15:14

我不懂啊,为什么return getWordNumber(n-1)+n;什么意思,看不懂

写回答 关注

4回答

  • 审判者_S
    2016-01-31 16:09:52
    已采纳

    比如n=10,开始执行getWordNumber(10)。。。 return getWordNumber(n-1)+n为return getWordNumber(9)+10,但这里不知道其中的getWordNumber(9)是多少,于是开始执行getWordNumber(9),同理,在getWordNumber(9)中会出现return getWordNumber(8)+9,因为不知道getWordNumber(8)是多少,所以在执行getWordNumber(8)。以此类推。出现getWordNumber(1)时满足if条件得出getWordNumber(1)的值,再把getWordNumber(1)的值套入getWordNumber(2)中得出getWordNumber(2)的值,以此类推。最终返回10天的总词数。

    ps:return getWordNumber(n-1)+n............中的(n-1)是为了递归调用前一天的值,后面的n是当天学习的单词量。

    侠客岛的含笑

    说得好

    2016-02-17 22:46:50

    共 1 条回复 >

  • qq_黑白鍵弹奏誰d忧伤_03334246
    2016-05-30 09:59:03

    回答的都是大神啊,表示感谢

  • 老Ma
    2016-03-02 14:19:32

    数学原理

    当n = 10时

    sum = getWordNumber(9)+10

                getWordNumber(9) = getWordNumber(8)+9

                getWordNumber(8) = getWordNumber(7) + 8

                getWordNumber(7) = getWordNumber(6) + 7

                getWordNumber(6) = getWordNumber(5) + 6

                getWordNumber(5) = getWordNumber(4) + 6

                getWordNumber(4) = getWordNumber(3) + 6

                getWordNumber(3) = getWordNumber(2) + 3

                getWordNumber(2) = getWordNumber(1) + 2

                getWordNumber(1) = 1

    一个一个往里面带入

    得到结果 

    sum = 1+2+3+4+5+6+7+8+9+10

  • 咖啡不要糖
    2016-02-13 16:39:30

    getWordNumbe(n-1)代表的是之前(n-1)天数所记住的单词,再加n就是n天一共记住的单词总数;

    递归,就是不断调用自己本身。比如求5天记住的单词,那就是return getWordNumber(5-1)+5;

    继续执行getWordNumber(5-1)为return getWordNumber(4-1)+4,不断自调,直到return getWordNumber(2-1)+2。就不再自调了。然后总加起来就是递归了。

C语言入门

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

926209 学习 · 20797 问题

查看课程

相似问题