采用逆向思维:
/*
猴子吃桃子问题。猴子第一天摘下若干个桃,当即吃掉一半,又多吃一个。
第二天早上又将剩下的一半吃掉一半,又多吃一个。以后每天早上都吃了
前天剩下的一半零一个,到第10天早上只剩下最后一个桃。问第一天摘了几个桃。
*/
#include<stdio.h>
int main()
{
int sum;//桃子的总数
int day = 9;//天数
int temp=1;
while(day!=0)
{
//第10天是1个桃子,则第9天的桃子数=(第10天剩余桃子数+1)后的2倍
temp =2*(temp+1);//第一天的桃子数是第2天桃子数加1后的2倍
day--;
}
sum = temp;
printf("%d\n",sum);//答案是1534个桃子
return 0;
}
原文:http://blog.csdn.net/u012110719/article/details/40502981