猴子吃桃問題。

2021-08-17 20:50:50 字數 990 閱讀 4999

22. 猴子吃桃問題。猴子第1天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了乙個。

第二天又將剩下的桃子吃掉一半,又多吃了乙個。

以後每天早上都吃了前一天剩下的一半另加乙個。

到第10天早上想再吃時,就只剩乙個桃子了。   求第1天共摘了多少個桃子。

分析:遞迴解題思路:

從已知事實出發,求未知結果。

該題中,已知事實為:第10天共有1個桃子。

未知結果為:第1天共摘了多少桃子?

那麼:找出 已知事實 和 未知結果 之間的關係:

由第10天沒吃前共有1個桃子,可得出第9天 沒吃前 共有幾個桃子?找出他們之間的關係。

設第10天沒吃前共有n10個桃子,第9天沒吃前共有n9個桃子:

由題意得:第9天吃了 (n9/2+1)

第9天剩了n9-(n9/2+1)     第9天剩的 就等於 第10天沒吃前的桃子

得:n9-(n9/2+1) =n10

整理得:n9=2*n10+2    這個公式很重要很關鍵,它是遞迴時主要用到的。

由這個公式,推出:n8=2*n9+2       n7=2*n8+2

想求n1->就得求n2,想求n2,就得求n3..........總結:想求n1,最終就得靠n10求出

(n1表示第1天沒吃前的桃子個數)

**如下:

while迴圈:

for迴圈:

猴子吃桃問題

猴子吃桃問題 時間限制 3000 ms 記憶體限制 65535kb 難度 0 描述 有一堆桃子不知數目,猴子第一天吃掉一半,又多吃了乙個,第二天照此方法,吃掉剩下桃子的一半又多乙個,天天如此,到第 m天早上,猴子發現只剩乙隻桃子了,問這堆桃子原來有多少個?m 29 輸入 第一行有乙個整數 n,表示有...

猴子吃桃問題

有乙隻猴子第一天摘下若干個桃子,當即吃掉了一半,有多吃了乙個 第二天又將剩下的桃子吃掉一半,有多吃了乙個 按照這樣的吃飯每天都吃掉前一天剩下的一半又多乙個。到了第10天,就剩下乙個桃子。問題,這個桃子第一天摘了多少個桃子。include int main printf d n ans return ...

猴子吃桃問題

猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個 第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃 時,見只剩下乙個桃子了。求第一天共摘了多少。方法一 public class test w w 1 2 syst...