猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將第一天剩下的桃子吃掉一半,有多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第 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 %dn",x1); /* 輸出桃子的總數*/
return 0;
}
執行結果:
the total is 1534
技術要點:
本範例的思路基本上是先找出變數間的關係,也就是要明確第一天桃數和第二天桃子數之間的關係,即第二天桃子數加 1 的 2 倍等於第一天的桃子數。