用Python编写以下程序:猴子第一天摘下若干个桃子,当即吃了2/3,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉2/3,又多吃了一个。以后每天早上都吃了前一天剩下的2/3再多一个。到第n天早上想再吃时,发现只剩下k个桃子了。求第一天共摘了多少桃子。
时间: 2023-12-13 22:17:38 浏览: 119
java代码-一只猴子第一天摘下若干个桃子,当即吃了一半,还不上瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃掉前一天剩下的一半零一个。第十天早上想再吃时,发现只剩下一个桃子了。请问猴子第一天一共摘了多少个桃子?
这道题目的思路跟上一个问题类似,只不过是逆推求解。我们可以从第 n 天开始,根据题意逆推出第 n-1 天、第 n-2 天、第 n-3 天……一直到第 1 天,最终得到第一天共摘了多少个桃子。
具体实现方法如下:
```python
def calc_peach(day, k):
peach = k
for i in range(day-1, 0, -1):
peach = (peach - 1) * 2 / 3
return int(peach)
if __name__ == '__main__':
day = int(input("请输入天数:"))
k = int(input("请输入第{}天剩余的桃子数:".format(day)))
peach = calc_peach(day, k)
print("第一天共摘了{}个桃子".format(peach))
```
程序中的 `calc_peach` 函数根据逆推递推式计算第一天应该摘多少个桃子,然后将结果转换成整数并返回。主程序入口根据用户输入的天数和第 n 天剩余的桃子数调用函数并输出结果。
阅读全文