C語言猴子吃桃問題
猴子吃桃問題:猴子第一天摘下若幹個桃子,當即吃了一半,還不過瘾,又多吃了一個。第二天早上又将第一天剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第 10 天早上想再吃時,發現隻剩下一個桃子了。編寫程式求猴子第一天摘了多少個桃子。
實作過程:
(1) 、定義 day、x1、x2 為基本整型,并為 day 和 x2 賦初值 9 和 1。
(2) 、使用 while 語句由後向前推出第一天摘的桃子數。
(3)、 輸出結果。
(4)、 程式代碼如下:
#include <stdio.h>
int main()
{
intday,x1,x2; /*定義 day、x1、x2 3 個變董為基本整型*/
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2; /*第一天的桃子數是第二天桃子數加1後的2倍*/
x2=x1;
day--; /*因為從後向前推是以天數遞減*/
}
printf("the total is %d\n",x1); /* 輸出桃子的總數*/
return 0;
}
運作結果:
the total is 1534
技術要點:
本執行個體的思路基本上是先找出變量間的關系,也就是要明确第一天桃數和第二天桃子數之間的關系,即第二天桃子數加 1 的 2 倍等于第一天的桃子數。