題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個?第二天早上又將剩下的桃子吃掉一半,又多吃了一個,以后每天早上都吃了前一天剩下?的一半零一個,到第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天,是一個回圈程序,
實體:
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(){ 4 int day, x1 = 0, x2; 5 day=9; 6 x2=1; 7 while(day>0) { 8 x1=(x2+1)*2; // 第一天的桃子數是第2天桃子數加1后的2倍 9 x2=x1; 10 day--; 11 } 12 printf("總數為 %d\n",x1); 13 14 return 0; 15 }
以上實體輸出結果為:
總數為 1534
感謝你的閱讀,請用心感悟!希望可以幫到愛學習的你!!分享也是一種快樂!!!請接力,,,
點擊查看原文,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24373.html
標籤:C
