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

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

為什么 num = (getPeachNumber(n + 1) + 1) * ??

? num = (getPeachNumber(n + 1) + 1) *?

正在回答

6 回答

還有第二行代碼:int getPeachNumber(n)是錯誤的。雖然在最后可以算出正確結果,但有錯誤提示。

(n)沒有定義數據類型,因為是天數,所以用整型,(int n)

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

根據題意做下假設,就拿第5、6天來說明。

假設第5天桃子數為a,第6天桃子數為b,得到下面公式:

a/2-1=b? //可以理解為這個公式用在遞推

那么當計算到第10天,結果為1,反回值時就需要變換公式了

a-1*2=b*2? //等號兩邊乘以2

a=b*2+1*2 //把1*2移到等號右邊

a=(b+1)*2? //把2提取出來

寫成函數代碼就是:(getPeachNumbern(n)+1)*2

又因為遞推時,getPeachNumber(0)是沒有意義,保證n最小值為1,就寫成n+1

最后結果:(getPeachNumber(n+1)+1)*2

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

因為現在告訴你的是第十天的桃子數,而main函數中是求總桃子數,也就是第一天摘的桃子數,那怎么辦呢?那么遞歸就是通過不斷調用自身來獲取已知的值,既然第一天桃子數不知道,那就看看第二天的桃子數,而第一天的桃子數等于第二天的桃子數+1再*2,那第二天的桃子數又不知道,又調用自身的函數,再往前推,一直到第十天,終于知道等于一個了,計算機這樣不斷累加回去得出最后的答案。

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

在這個程序中,初始設定只知道getpeachnumber(10)=1,要先推出(getpeachnumber(9+1)+1)*2=num(第九天的情況)才能繼續往下推。



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

可以理解為函數有f(n+1)=f(n)-(f(n)/2+1),即第n+1天所剩桃子數,換過來f(n)=2*(f(n+1)+1),即第n天所剩桃子數,f(n)=num

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

num = (getPeachNumber(n+1)+1)*2;

應為遞歸 最后一次為第十天剩下1個桃子,由此往前推,剩下的1桃子個加1乘以2得到前一天的(由后向前從第十天-第九天----第一天)

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

舉報

0/150
提交
取消

為什么 num = (getPeachNumber(n + 1) + 1) * ??

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

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

幫助反饋 APP下載

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

公眾號

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