課程
/后端開發(fā)
/C
/C語言入門
根據(jù)題中函數(shù)的執(zhí)行,我可以理解num的值的變化,但是函數(shù)內(nèi)的輸出,例如第一條,n是9,num是4;num值我理解,但是n的值為什么是9我不太清楚
2018-12-07
源自:C語言入門 5-8
正在回答
我貌似理解題主的意思了,為什么是打印從9開始而不是1,那是因?yàn)椤皃rintf("第%d天所剩桃子%d個(gè)\n", n, num); //天數(shù),所剩桃子個(gè)數(shù)”這條語句在最開始傳入 1 的時(shí)候并沒有執(zhí)行,那這條語句是什么時(shí)候開始第一次執(zhí)行呢,就是一直執(zhí)行這個(gè)“(getPeachNumber(n + 1) + 1)*2”遞歸,直到n曾加到10了,然后開始return 1,return 1;之后,此時(shí)函數(shù)跳回到上一層,這個(gè)時(shí)候n等于9,然后因?yàn)檫f歸已經(jīng)執(zhí)行過了,開始往外一層一層退了,才開始第一次執(zhí)行“printf("第%d天所剩桃子%d個(gè)\n", n, num);”,而此時(shí)正好是n等于9,然后就是8等等,主要是你要是理解了遞歸的過程就好了。
說一下我的理解吧。樓主是沒有弄清楚N的變化過程
我就單單講一下,n在遞歸中的變化
從第一次開始
因?yàn)镹=1不等于10,而后有num = (某函數(shù)(n+1)+1)*2; ?
其中 ?某函數(shù)(n+1)
又是一次調(diào)用函數(shù)
而新的N=n+1
但是新的N=2,還是不等于10故又往后跳
直到新的N等于10,遞歸結(jié)束時(shí)才會開始有執(zhí)行結(jié)果
(程序在計(jì)算5的階乘的時(shí)候,先執(zhí)行遞推,當(dāng)n=1或者n=0的時(shí)候返回1,再回推將計(jì)算并返回??煽匆幌律弦活}理解)
樓主搞清楚執(zhí)行順序就好! ?不理解是對遞歸的執(zhí)行順序模糊,理清楚就能知道結(jié)果為何而來。
以上只是個(gè)人見解,本人小白一個(gè),如有錯(cuò)漏,請見諒。
(getPeachNumber(n+1)+1)*2;
算法的核心是‘今天的桃子數(shù)量=(明天桃子數(shù)量+1)的兩倍,
例:今天是第九天,今天的桃子數(shù)=第十天的桃子數(shù)+1再*2.
(個(gè)人理解)
洋氣么么
就是頭有點(diǎn)冷 回復(fù) 洋氣么么
米蟲懶得聰明 回復(fù) 就是頭有點(diǎn)冷
米蟲懶得聰明 回復(fù) 洋氣么么
吃前數(shù)桃子,
舉報(bào)
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
1 回答不是太明白這道題的邏輯 ~
2 回答不太明白/
2 回答不太明白
3 回答不是先判斷再循環(huán)嗎?我也不明白n<m的問題
1 回答不太明白內(nèi)容
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2019-01-03
我貌似理解題主的意思了,為什么是打印從9開始而不是1,那是因?yàn)椤皃rintf("第%d天所剩桃子%d個(gè)\n", n, num); //天數(shù),所剩桃子個(gè)數(shù)”這條語句在最開始傳入 1 的時(shí)候并沒有執(zhí)行,那這條語句是什么時(shí)候開始第一次執(zhí)行呢,就是一直執(zhí)行這個(gè)“(getPeachNumber(n + 1) + 1)*2”遞歸,直到n曾加到10了,然后開始return 1,return 1;之后,此時(shí)函數(shù)跳回到上一層,這個(gè)時(shí)候n等于9,然后因?yàn)檫f歸已經(jīng)執(zhí)行過了,開始往外一層一層退了,才開始第一次執(zhí)行“printf("第%d天所剩桃子%d個(gè)\n", n, num);”,而此時(shí)正好是n等于9,然后就是8等等,主要是你要是理解了遞歸的過程就好了。
2019-01-02
說一下我的理解吧。樓主是沒有弄清楚N的變化過程
我就單單講一下,n在遞歸中的變化
從第一次開始
因?yàn)镹=1不等于10,而后有num = (某函數(shù)(n+1)+1)*2; ?
其中 ?某函數(shù)(n+1)
又是一次調(diào)用函數(shù)
而新的N=n+1
但是新的N=2,還是不等于10故又往后跳
直到新的N等于10,遞歸結(jié)束時(shí)才會開始有執(zhí)行結(jié)果
(程序在計(jì)算5的階乘的時(shí)候,先執(zhí)行遞推,當(dāng)n=1或者n=0的時(shí)候返回1,再回推將計(jì)算并返回??煽匆幌律弦活}理解)
樓主搞清楚執(zhí)行順序就好! ?不理解是對遞歸的執(zhí)行順序模糊,理清楚就能知道結(jié)果為何而來。
以上只是個(gè)人見解,本人小白一個(gè),如有錯(cuò)漏,請見諒。
2018-12-11
(getPeachNumber(n+1)+1)*2;
算法的核心是‘今天的桃子數(shù)量=(明天桃子數(shù)量+1)的兩倍,
例:今天是第九天,今天的桃子數(shù)=第十天的桃子數(shù)+1再*2.
(個(gè)人理解)
2018-12-09
吃前數(shù)桃子,