提示:本文共有 607 个字,阅读大概需要 2 分钟。
编程题
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,就剩下一个桃子了。求第1天共摘了多少个桃子?
思路分析
假设桃子数为s,按吃掉一半又多吃了一个的吃法,剩余桃子数r=s-1/2*s-1。可以得出s=2*(r+1)的关系。每次吃剩的桃子即为下一天桃子的总数。实现方法1:可以通过循环语句,逆推出第一天的桃子总数实现方法2:采用递归函数求解编程实现
#方法1:通过循环实现for day in range(10,0,-1): if day==10: count=1 else: remain = count #剩余数==下一天的总数 count=(remain+1)*2 #总个数 #print("第%d天共%d个桃子,吃了%d个,剩余%d个"%(day,count,count-remain,remain))print("第1天共摘了%d个桃子"%count)#方法2:通过递归函数实现def fun(n): if n==10: return 1 else: return 2*(fun(n+1)+1)print("第1天共摘了%d个桃子"%fun(1))运行结果如下:
看到此处说明本文对你还是有帮助的,关于“「Python」每日一练:猴子偷桃”留言是大家的经验之谈相信也会对你有益,推荐继续阅读下面的相关内容,与本文相关度极高!