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

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

(例題)return表示返回值,最后n是被1賦值,那最終不應該為1么,為什么前面再怎么遞歸最終都為1 啊

看上如所示

正在回答

5 回答

你只理解:到了逐層遞歸直到最內層,就是n==1時,遞歸結束,就是不再調用;

遞歸到最內層后,遞歸會反方向逐層退出,就是由n=1,得到n=2的結果,由此最后得到n=10的結果;


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

很好理解啊 10太多了,我們以3天的單詞量為例:

輸入3: getWordNumber(3);

? ? ? ? ?里面的表達式是 3 + getWordNumber(3-1);

? ? ? ? ?相當于調用了一次getWordNumber(2)

輸入2:getWordNumber(2);

? ? ? ? 里面的表達式是 2+ getWordNumber(2-1);

? ? ? ? 相當于調用了一次getWordNumber(1);

輸入1 :getWordNumber(1);

? ? ? ?直接返回1;

? ? ? ?getWordNumber(1) = 1;

那么2中的結果就出來了 2 + 1 = 3,那么getWordNumber(2)=3;

同理3中的結果也就出來了 3+ getWordNumber(2) =6, getWordNumber(3)=6;

所以最后的結果就是6.

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

37777

請問這個的意思就是遞歸在調用的時候先從外到內逐步算出直到算到最內層后再從最內層推到最外層的意思嗎
2020-12-17 回復 有任何疑惑可以回復我~
#2

weixin_慕尼黑2048433

怎么實現的輸入2和3
2021-11-14 回復 有任何疑惑可以回復我~
#1

慕標5051914

講的啥呀,聽不懂
2020-11-20 回復 有任何疑惑可以回復我~

我問的是左側中的例題

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

不再年輕需努力

看我的回答,字數限制,沒辦法回復
2020-11-17 回復 有任何疑惑可以回復我~

遞歸函數可以理解為函數被調用過多次,只是內部調用自己會繞一點。

int getWordNumber(int n)

{? ?

? ? if(n == 1)

? ? {

? ? ? ? return 1;? ? //第一天只會1個單詞

? ? }

? ? else{

? ? ? ? return getWordNumber(n - 1) + n;? ? ? ?//到第天會的單詞數量

? ? }

}


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

舉報

0/150
提交
取消

(例題)return表示返回值,最后n是被1賦值,那最終不應該為1么,為什么前面再怎么遞歸最終都為1 啊

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

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

幫助反饋 APP下載

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

公眾號

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