猴子第一天摘下若干个桃子,当即吃了2/3,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉2/3,又多吃了一个。以后每天早上都吃了前一天剩下的2/3再多一个。到第n天早上想再吃时,发现只剩下k个桃子了。求第一天共摘了多少桃子。用Python编写程序
时间: 2023-12-13 21:17:37 浏览: 393
猴子吃桃子问题的VB程序示例
根据题意,可以列出如下的递推式:
第n天剩余桃子数:k
第n-1天剩余桃子数:(k+1)/(2/3)
第n-2天剩余桃子数:((k+1)/(2/3)+1)/(2/3)
...
第1天剩余桃子数:((...((k+1)/(2/3)+1)/(2/3)+1)/(2/3)+...+1)/(2/3)
由此可以推出第一天摘了多少个桃子:
```
peach = (((...((k+1)/(2/3)+1)/(2/3)+1)/(2/3)+...+1)/(2/3)) + 1
```
下面是用Python实现的程序:
```python
def calc_peach(day, k):
peach = k
for i in range(day):
peach = (peach + 1) * 3 / 2
return peach
if __name__ == '__main__':
day = int(input("请输入天数:"))
k = int(input("请输入第{}天剩余的桃子数:".format(day)))
peach = int(calc_peach(day, k))
print("第一天共摘了{}个桃子".format(peach))
```
程序中的 `calc_peach` 函数根据递推式计算第一天应该摘多少个桃子,然后将结果转换成整数并返回。主程序入口根据用户输入的天数和第 n 天剩余的桃子数调用函数并输出结果。
阅读全文