题目:
猴子吃桃问题。
猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。
求第1天共摘多少个桃子。
分析:
通过阅读题目,我们可以得到2个关键信息:
- 今天的桃子数量 == 明天的桃子数量 * 2 - 1
- 只吃了9天桃子,第10天还没吃,手上就只有1个了
由这2条信息,我们就有思路了:
执行1次 就可以得到上1天的数量(由第1条关键信息移项而来),然后循环9次。
代码实现:
#include <stdio.h>
int main()
{
int sum_peach = 0;
int i = 0;
sum_peach = 1;
for (i = 0; i < 10 - 1; i++)
{
sum_peach = (sum_peach + 1) * 2;
}
printf("第1天有%d个桃子\n", sum_peach);
return 0;
}