猴子吃桃问题就是:一个猴子,看到许多的桃子,第一天吃了一半,又吃了一个,第二天也吃了一半,又吃了一个,一直这样下去,到了第10天,只剩下一个桃子了,求猴子吃桃子的过程。
首先我们要知道怎么算
假设第一天猴子吃了n个,这么说就是((n/2+1)/2+1)/2+1.../2+1=1(重复9次因为猴子第一天已经吃了桃子)这样子倒推过来就是((1+1)*2+1)*2...+1)*2=n,第一天猴子吃了1个,我们赋值于x,x一直x=(x+1)*2重复9次就可以得出从第10天到第1天猴子吃桃的过程了。
原理说完了,就应该上代码
#include <iostream>
int main()
{
int sum=1;//最后剩下1个桃
for(int i=0;i<=8;i++)//0也算一次,也就是9次
{
sum=(sum+1)*2;//重复操作
printf("猴子第%d天吃了%d桃\n",9-i,sum);
}
}
程序结果: