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

5-7怎么理解

return getWordNumber(n-1)+n什么意思,这题不是1+2+3+4...10吗?

提问者:国产001 2017-08-17 21:12

个回答

  • xhz567
    2017-08-18 00:12:52
    已采纳

    return getWordNumber(n-1)+n;是在返回的时候,再调用一次getWordNumber(),

    比如当你调用getWordNumber(10),是这样计算的:

    getWordNumber(10)=getWordNumber(9)+10

    =getWordNumber(8)+9+10

    ...

    =getWordNumber(1)+2+3+...+10

    又因为前面知道n为1时,getWordNumber(1) return的值是1,所以就计算出来了1+2+3+...+10


    因为这一节讲的是递归函数,所以要用递归的思想考虑问题。所谓递归就是自己调用自己,在这个题目里面,我们简单分析就能看出来是要计算从1一直加到10。可是用递归思想,就要从问题结局,也就是每一天都比前一天多记一个单词,求“第n天”记单词的数量,这样来分析问题。

  • 慕移动9181930
    2022-03-26 08:50:23

    移动是空格,+鼠标单击拖拽稿

  • 国产001
    2017-08-18 21:47:33

    谢谢!

  • 成蔚
    2017-08-18 18:55:54

    楼上说的很好     如果是第一天    则一共记的单词数为 1

    如果不是     则一共记的单词数是    到昨天一共记的单词加上当天记的单词[getWordNumber(n-1)+n]   而到昨天一共记的单词数 是到前天一共记得单词加上前天记的单词[getWordNumber(n-1)=getWorldNumber(n-2)+n-1]  

    以此类推