问题:
猴子第一天摘下若干个桃子,
当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第 10 天早上想再吃时,发现只剩下一个桃子了。
编写程序求猴子第一天摘了多少个桃子。
我采用了逆推法,当然也可以用顺推
#include<iostream>
using namespace std;
int main(){
int t=1;
int d=9;
for(d=9;d>=1;d--){
t=(t+1)*2;
}
cout<<t<<endl;
system("pause");
return 0;
}
顺推:(c语言)
#include <stdio.h>
int main()
{
int day,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;
}