課程
/后端開發(fā)
/C
/C語言入門
? num = (getPeachNumber(n + 1) + 1) *?
2018-06-19
源自:C語言入門 5-8
正在回答
還有第二行代碼:int getPeachNumber(n)是錯(cuò)誤的。雖然在最后可以算出正確結(jié)果,但有錯(cuò)誤提示。
(n)沒有定義數(shù)據(jù)類型,因?yàn)槭翘鞌?shù),所以用整型,(int n)
根據(jù)題意做下假設(shè),就拿第5、6天來說明。
假設(shè)第5天桃子數(shù)為a,第6天桃子數(shù)為b,得到下面公式:
a/2-1=b? //可以理解為這個(gè)公式用在遞推
那么當(dāng)計(jì)算到第10天,結(jié)果為1,反回值時(shí)就需要變換公式了
a-1*2=b*2? //等號(hào)兩邊乘以2
a=b*2+1*2 //把1*2移到等號(hào)右邊
a=(b+1)*2? //把2提取出來
寫成函數(shù)代碼就是:(getPeachNumbern(n)+1)*2
又因?yàn)檫f推時(shí),getPeachNumber(0)是沒有意義,保證n最小值為1,就寫成n+1
最后結(jié)果:(getPeachNumber(n+1)+1)*2
因?yàn)楝F(xiàn)在告訴你的是第十天的桃子數(shù),而main函數(shù)中是求總桃子數(shù),也就是第一天摘的桃子數(shù),那怎么辦呢?那么遞歸就是通過不斷調(diào)用自身來獲取已知的值,既然第一天桃子數(shù)不知道,那就看看第二天的桃子數(shù),而第一天的桃子數(shù)等于第二天的桃子數(shù)+1再*2,那第二天的桃子數(shù)又不知道,又調(diào)用自身的函數(shù),再往前推,一直到第十天,終于知道等于一個(gè)了,計(jì)算機(jī)這樣不斷累加回去得出最后的答案。
在這個(gè)程序中,初始設(shè)定只知道getpeachnumber(10)=1,要先推出(getpeachnumber(9+1)+1)*2=num(第九天的情況)才能繼續(xù)往下推。
可以理解為函數(shù)有f(n+1)=f(n)-(f(n)/2+1),即第n+1天所剩桃子數(shù),換過來f(n)=2*(f(n+1)+1),即第n天所剩桃子數(shù),f(n)=num
應(yīng)為遞歸 最后一次為第十天剩下1個(gè)桃子,由此往前推,剩下的1桃子個(gè)加1乘以2得到前一天的(由后向前從第十天-第九天----第一天)
舉報(bào)
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
1 回答為什么 num =(getPeachNumber(n+1)+1)*2;
1 回答num = (getPeachNumber(n+1)+1)*2;
3 回答為什么是填num = (getPeachNumber(n+1)+1)*2而不是num = (getPeachNumber(n+1)*2呢
3 回答為什么num = 2*(getPeachNumber(n+1)+1)不行???
2 回答為什么num = (getPeachNumber(n+1)+1)*2;這里要把getPeachNumber括號(hào)進(jìn)去?num = getPeachNumber((n+1)+1)*2不行嘛?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-07-21
還有第二行代碼:int getPeachNumber(n)是錯(cuò)誤的。雖然在最后可以算出正確結(jié)果,但有錯(cuò)誤提示。
(n)沒有定義數(shù)據(jù)類型,因?yàn)槭翘鞌?shù),所以用整型,(int n)
2018-07-21
根據(jù)題意做下假設(shè),就拿第5、6天來說明。
假設(shè)第5天桃子數(shù)為a,第6天桃子數(shù)為b,得到下面公式:
a/2-1=b? //可以理解為這個(gè)公式用在遞推
那么當(dāng)計(jì)算到第10天,結(jié)果為1,反回值時(shí)就需要變換公式了
a-1*2=b*2? //等號(hào)兩邊乘以2
a=b*2+1*2 //把1*2移到等號(hào)右邊
a=(b+1)*2? //把2提取出來
寫成函數(shù)代碼就是:(getPeachNumbern(n)+1)*2
又因?yàn)檫f推時(shí),getPeachNumber(0)是沒有意義,保證n最小值為1,就寫成n+1
最后結(jié)果:(getPeachNumber(n+1)+1)*2
2018-07-04
因?yàn)楝F(xiàn)在告訴你的是第十天的桃子數(shù),而main函數(shù)中是求總桃子數(shù),也就是第一天摘的桃子數(shù),那怎么辦呢?那么遞歸就是通過不斷調(diào)用自身來獲取已知的值,既然第一天桃子數(shù)不知道,那就看看第二天的桃子數(shù),而第一天的桃子數(shù)等于第二天的桃子數(shù)+1再*2,那第二天的桃子數(shù)又不知道,又調(diào)用自身的函數(shù),再往前推,一直到第十天,終于知道等于一個(gè)了,計(jì)算機(jī)這樣不斷累加回去得出最后的答案。
2018-07-02
在這個(gè)程序中,初始設(shè)定只知道getpeachnumber(10)=1,要先推出(getpeachnumber(9+1)+1)*2=num(第九天的情況)才能繼續(xù)往下推。
2018-06-21
可以理解為函數(shù)有f(n+1)=f(n)-(f(n)/2+1),即第n+1天所剩桃子數(shù),換過來f(n)=2*(f(n+1)+1),即第n天所剩桃子數(shù),f(n)=num
2018-06-19
num = (getPeachNumber(n+1)+1)*2;
應(yīng)為遞歸 最后一次為第十天剩下1個(gè)桃子,由此往前推,剩下的1桃子個(gè)加1乘以2得到前一天的(由后向前從第十天-第九天----第一天)