当前位置:   article > 正文

用python编写猴子吃桃问题_用python编写猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个

用python编写猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个

猴子吃桃问题
需求分析

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。

求原来它一共摘了多少个桃子。

这题可以用递归思想倒着推。

第 10 天还没吃,就剩 1 个,说明第 9 天吃完一半再吃 1 个还剩 1 个。

假设第 9 天还没吃之前有桃子 p 个

可得:p/2 - 1 = 1,得出第九天的桃子数 p=4。

以此类推,即可算出第一天摘了多少桃子.

算法思路:

第 10 天还没吃之前的桃子数量初始化 p=1
从 9 至 1 循环 9 次,根据上述公式反推为 p=(p+1)*2 可得第 1 天还没吃之前的桃子数量
p = 1
print(f'第10天还剩下{p}个桃子')
for i in range(9,0,-1):
    p = (p + 1) * 2
    print(f'第{i}天还剩下{p}个桃子')
print(f'第一天一共摘了{p}个桃子')

# 第10天还剩下1个桃子
# 第9天还剩下4个桃子
# 第8天还剩下10个桃子
# 第7天还剩下22个桃子
# 第6天还剩下46个桃子
# 第5天还剩下94个桃子
# 第4天还剩下190个桃子
# 第3天还剩下382个桃子
# 第2天还剩下766个桃子
# 第1天还剩下1534个桃子
# 第一天一共摘了1534个桃子

————————————————
版权声明:本文为CSDN博主「拉保小跑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_59235245/article/details/131185493

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/424118
推荐阅读
相关标签
  

闽ICP备14008679号