猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,见只剩一个桃子。求第一天共摘了多少桃子。 **输出格式要求:"桃子总数=%d\n" 程序运行示例如下: 桃子总数=xxxx
这道题要倒过来算,
第十天的时候只有一个,说明第九天有4个(4个吃了一半剩2个,再多吃一个就是剩1个),第八天是10个,第七天是22个,第6天是46个,etc
所以从最后一天开始往前推,等到一个式子:(前一天的)=((后一天的)+ 1 )× 2
所以有下面的代码
#include<stdio.h>
int main()
{
int sum=1; // sum 是第一天摘的桃子总数
int i=1; // i 是天数
for (int i = 9; i>0; i--)
{
sum =2*(sum + 1);
}
printf("桃子总数=%d\n",sum);
}
最后的答案应该是1534个