課程
/后端開發
/C
/C語言入門
看上如所示
2020-09-15
源自:C語言入門 5-7
正在回答
你只理解:到了逐層遞歸直到最內層,就是n==1時,遞歸結束,就是不再調用;
遞歸到最內層后,遞歸會反方向逐層退出,就是由n=1,得到n=2的結果,由此最后得到n=10的結果;
很好理解啊 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.
37777
weixin_慕尼黑2048433
https://www.bilibili.com/video/BV1xJ411S7cY?from=search&seid=12532094508030475677
講的超級明白
慕標5051914
我問的是左側中的例題
不再年輕需努力
遞歸函數可以理解為函數被調用過多次,只是內部調用自己會繞一點。
int getWordNumber(int n)
{? ?
? ? if(n == 1)
? ? {
? ? ? ? return 1;? ? //第一天只會1個單詞
? ? }
? ? else{
? ? ? ? return getWordNumber(n - 1) + n;? ? ? ?//到第天會的單詞數量
}
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
2 回答到最后明明應該return 1;的啊,為什么返回值不是1呢?不懂!
2 回答為什么3/4最后取值為1
1 回答最后為什么是10,不應該是1嘛....
3 回答為什么遞歸是num =(getPeachNumber(n+1)+1)*2
1 回答最后返回值不是1嗎??求解釋
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-11-20
你只理解:到了逐層遞歸直到最內層,就是n==1時,遞歸結束,就是不再調用;
遞歸到最內層后,遞歸會反方向逐層退出,就是由n=1,得到n=2的結果,由此最后得到n=10的結果;
2020-11-17
很好理解啊 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.
2020-09-24
https://www.bilibili.com/video/BV1xJ411S7cY?from=search&seid=12532094508030475677
講的超級明白
2020-09-15
我問的是左側中的例題
2020-09-15
遞歸函數可以理解為函數被調用過多次,只是內部調用自己會繞一點。
int getWordNumber(int n)
{? ?
? ? if(n == 1)
? ? {
? ? ? ? return 1;? ? //第一天只會1個單詞
? ? }
? ? else{
? ? ? ? return getWordNumber(n - 1) + n;? ? ? ?//到第天會的單詞數量
? ? }
}