循环语句逻辑练习题-选做题作业题猴子吃桃问题:猴子第一天摘了若干个桃子,当即吃了一半,还不过瘾又多吃了一个。第二天早上又吃了剩下桃子的一半,之后又多吃了一个。以后每天早上都是一样。到第10天时发现只剩下1个桃子,问猴子第一天共摘了多少个桃子?
时间: 2023-12-13 22:08:11 浏览: 142
思路分析:
根据题目可以列出如下表格:
| 第几天 | 剩余桃子数 | 吃掉的桃子数 |
| ------ | ---------- | ------------ |
| 10 | 1 | |
| 9 | ? | 1 |
| 8 | ? | ? |
| 7 | ? | ? |
| 6 | ? | ? |
| 5 | ? | ? |
| 4 | ? | ? |
| 3 | ? | ? |
| 2 | ? | ? |
| 1 | ? | ? |
由于每天早上都是一样的吃法,可以推出:
第9天剩余桃子数 = 第10天剩余桃子数 * 2 + 2
第8天剩余桃子数 = 第9天剩余桃子数 * 2 + 2
...
第1天剩余桃子数 = 第2天剩余桃子数 * 2 + 2
而第10天剩余桃子数为1,所以可以倒推出第1天的剩余桃子数,即为答案。
代码实现:
相关问题
猴子吃桃子问题,猴子摘了一些桃子,它每天吃掉桃子总数的一半再多吃一个,第5天时猴子准备吃桃子时发现只剩一个了,求猴子最开始摘了几个桃。(用for语句或while语句皆可)。
假设猴子最开始摘了x个桃子,那么根据题意,可以列出以下等式:
第1天剩下的桃子数:x - x/2 - 1 = x/2 - 1
第2天剩下的桃子数:(x/2 - 1) - (x/4 - 1) = x/4 - 1
第3天剩下的桃子数:(x/4 - 1) - (x/8 - 1) = x/8 - 1
第4天剩下的桃子数:(x/8 - 1) - (x/16 - 1) = x/16 - 1
第5天剩下的桃子数:(x/16 - 1) - 1 = x/16 - 2
根据题意,第5天只剩下1个桃子,因此有:
x/16 - 2 = 1
解得:
x = 34
因此,猴子最开始摘了34个桃子。
猴子第一天摘下1534个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。问到第十天早上想吃时,使用 C 语言编写程序输出还剩几个桃子。
好的,这是一道数学题,我们可以使用循环语句来模拟猴子每天吃桃子的过程。以下是使用 C 语言编写的程序:
```c
#include <stdio.h>
int main() {
int peach = 1534; // 猴子第一天摘下的桃子数
for (int i = 1; i <= 9; i++) {
peach = (peach / 2) - 1; // 每天早上吃一半零一个
}
printf("第十天早上还剩%d个桃子。\n", peach);
return 0;
}
```
程序输出如下:
```
第十天早上还剩2个桃子。
```
所以到第十天早上,猴子还剩下 2 个桃子。
阅读全文