C 練習實例21

C 語言經典100例 C 語言經典100例

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

程式分析:採取逆向思維的方法,從後往前推斷。

1) 設x1為前一天桃子數,設x2為第二天桃子數, 則:

x2=x1/2-1, x1=(x2+1)*2

x3=x2/2-1, x2=(x3+1)*2

以此類推: x前=(x後+1)*2

2) 從第10天可以類推到第1天,是一個迴圈過程。

程式源代碼:

實例

// Created by www.xuhuhu.com on 15/11/9. // // #include <stdio.h> #include <stdlib.h> int main(){ int day, x1 = 0, x2; day=9; x2=1; while(day>0) { x1=(x2+1)*2; // 第一天的桃子數是第2天桃子數加1後的2倍 x2=x1; day--; } printf("總數為 %d\n",x1); return 0; }

以上實例輸出結果為:

總數為 1534

C 語言經典100例 C 語言經典100例