猴子吃桃問題 php,趣味演算法 猴子吃桃問題

2021-10-25 21:22:18 字數 993 閱讀 7990

簡明現代魔法 -> c/c++ -> 趣味演算法:猴子吃桃問題

趣味演算法:猴子吃桃問題

2010-05-26

猴子第一天摘下若干桃子,當即吃了一半,還不過癮,又多吃了乙個。第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘多少桃子。

c 程式:

#include

int main()

int sum = 1, i;

int wait;

for (i = 9; i >= 1; i--)

sum = (sum + 1) * 2;

printf("the num of peace are %d\n", sum);

scanf_s("%d", &wait);

return 0;

此題用倒推的辦法,所以注意迴圈結束的條件。多數情況下用迴圈為遞增方式,本題中用遞減方式,因此是: i >= 1 。

分步驗證如下:

#include

int main()

int prev ;

int next = 1 ;

int i;

int wait;

for (i = 9; i >= 1; i--)

prev = (next + 1) * 2 ;

printf("i=%d total=%-5d \n", i, prev);

next = prev;

scanf_s("%d,&wait");

return 0;

程式執行結果:

i=9 total=4

i=8 total=10

i=7 total=22

i=6 total=46

i=5 total=94

i=4 total=190

i=3 total=382

i=2 total=766

i=1 total=1534

猴子吃桃演算法

猴子第一天摘下若干個桃子,當即吃了一半,還不過癮就多吃了乙個。第二天早上又將剩下的桃子吃了一半,還是不過癮又多吃了乙個。以後每天都吃前一天剩下的一半再加乙個。到第10天剛好剩乙個。問猴子第一天摘了多少個桃子?這是乙個很經典的遞迴演算法,只要找到遞迴公式就迎刃而解 第n天桃子總數 第n天桃子總數 2 ...

猴子吃桃演算法

猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一 個 第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零一 個。到第 10 天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。程式分析 採取逆向思維的方法,從後往前推斷。下面用了for迴圈...

猴子吃桃問題

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