猴子吃桃问题(python版)
- 其他
- 2025-08-03 03:18:02

文章预览: 题目python解法一:运行结果 python解法二:运行结果 python解法三:运行结果 题目
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求原来它一共摘了多少只桃子。
这是一个比较简单的python习题。
python解法一:我们从后往前想,最后一次不就剩1个了吗,那么前一天剩多少个 和容易想到2*1+2,那么我们倒序想 就是 a n + 1 = 2 ∗ a n + 2 a_{n+1}=2*a_n+2 an+1=2∗an+2
def count(day): a=1 for i in range(day-1): a=a*2+2 return a print("第10天共摘了{}桃子".format(count(10))) 运行结果第10天共摘了1534桃子
python解法二:我们可以使用递归的办法,每次减小天数,天数为1的时候是1 代码如下:
def monkey_count(day): if day==1: return 1 else: return 2*monkey_count(day-1)+2 print("第{}天剩一个那总共有{}".format(10,monkey_count(10))) 运行结果第10天剩一个那总共有1534
python解法三:让我们算最终解法:复杂度最低的算法,我们干嘛不寻找规律完全解出这个通项岂不美哉。 由上面我们推导出了公式 a n = 3 / 2 ∗ 2 n − 2 a_n=3/2*2^n-2 an=3/2∗2n−2 那编程就容易多了 代码如下:
a=int(input()) count=3*2**(a-1)-2 print("第{}天剩一个那总共有{}".format(a,count)) 运行结果输入10 第10天剩一个那总共有1534
猴子吃桃问题(python版)由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“猴子吃桃问题(python版)”
上一篇
每日学习总结20240301