猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃一半,还不过瘾又多吃了一个。第二天又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃前一天剩下一半零一个。到第十天早上想再吃时,就只剩下一个桃子了。求第一天一共摘下多少个桃子。
1 #include<stdio.h>
2 int main()
3 {
4 int day,sum=0,surplus=1; //分别定义“天”、“果子总数”、“每日剩余果子”为三个变量
5 for(day=1;day<10;day++) //因为一共到第10天果子吃完,所以设置一个9天的循环
6 {
7 sum = (surplus+1)*2; //因为到第9天果子剩余1个,且每天都吃前一天总数的一半多一个。所以这里用剩余的果子加上每天多吃的一个果子,再乘以2得到第八天果子的总数。
8 surplus = sum; //得到第八天的果子数以后令他变成新的果子剩余数量。此时在进入天数的循环,得到第7天果子的总数。依次循环直到完成总共9天的循环。
9 }
10 printf("桃子总数 =%d\n",sum);
11 return 0 ;
12 }