C语言:猴子吃桃问题
·
题目:
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子?
思路:
逆向思维,从最后一天算起,最后一天剩一个,那么前一天就剩(1+1)*2个
因此设某一天剩桃子m个,前一天桃子n个,往前类推即n=(m+1)*2
注意:10天最后一天只剩1个桃子,程序只需循环9次
代码示例:
int main()
{
int num = 1;
int i;
int sum=0;
for (i = 1; i <= 9; i++)
{
num = (num + 1) * 2;
}
printf("第一天摘了:%d个桃子", num);
return 0;
}
运行结果:
更多推荐
已为社区贡献3条内容
所有评论(0)