亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

5-7怎么理解

return getWordNumber(n-1)+n什么意思,這題不是1+2+3+4...10嗎?

正在回答

4 回答

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??墒怯眠f歸思想,就要從問題結局,也就是每一天都比前一天多記一個單詞,求“第n天”記單詞的數量,這樣來分析問題。

9 回復 有任何疑惑可以回復我~
#1

王之藐視

你好,先謝謝你的解釋,但是我還是有一個疑問,我好像把遞歸和重復語句有些搞混,我不太懂語句如果沒有自加或自減是怎么再進行下一步的,我的理解是“9+10”就結束了執行,問題是出在return那里嗎?謝謝
2017-08-19 回復 有任何疑惑可以回復我~
#2

xhz567 回復 王之藐視

就是在return里,比如你開始是調用的getWordNumber(10),因為 return語句是這樣寫的:return getWordNumber(n-1)+n,所以接下來要再調用getWordNumber(10-1),也就是getWordNumber(9)。 以此類推。 直到最后變成了getWordNumber(1),因為代碼里規定了n等于1時,return 1; 此時這個遞歸就結束了。 其實遞歸你可以想象成一個花苞逐漸從外層綻放的過程,開始最外層的花瓣打開,結果里面其實還是個花骨朵,這樣再打開次外層的花瓣,直到最后所有花瓣都開了。
2017-08-19 回復 有任何疑惑可以回復我~
#3

xhz567 回復 xhz567

或者是剝洋蔥,最外層剝開之后,下一層還是個洋蔥。剝下去的一層,就好比這個例子里return里的那個“+n”,剩下的就是return里的get什么什么(n-1),最后剝完了,就是那個return 1; 初學遞歸確實比較難理解,慢慢來就好了。j
2017-08-19 回復 有任何疑惑可以回復我~
#4

王之藐視 回復 xhz567

我大概懂了,太謝謝你了
2017-08-20 回復 有任何疑惑可以回復我~
查看1條回復

謝謝!

0 回復 有任何疑惑可以回復我~

樓上說的很好 ? ? 如果是第一天 ? ?則一共記的單詞數為 1

如果不是 ? ? 則一共記的單詞數是 ? ?到昨天一共記的單詞加上當天記的單詞[getWordNumber(n-1)+n] ? 而到昨天一共記的單詞數 是到前天一共記得單詞加上前天記的單詞[getWordNumber(n-1)=getWorldNumber(n-2)+n-1]??

以此類推

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

5-7怎么理解

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號