python(递归)解决猴子吃桃问题
·
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多 少。
解析:第10天桃子的数量为1,倒序计算桃子数量
#第一种普通方法解决
n = 1 #第10天桃子的数量为1
for i in range(9,0,-1): #for循环,倒序,i表示第几天
n = (n+1) * 2 #第一循环i取9,n=(1+1)*2=4;第二次循环i取8,n=(4+1)*2=10;......
print(n)
结果如图所示:
#第二种方法解决(递归)
#利用第十天给出的常量 1,以此计算出之前每天的桃子数量
def monkey_tao(n): #定义函数monkey_tao()
if n>10 or n<1: #判断n(天数)的范围
return
elif n==10:
return 1
else:
return (monkey_tao(n+1)+1)*2 #核心计算公式
print(monkey_tao(1))
执行结果如图所示:
#第三种方法解决:(随便改变天数都可以求出总数)
def eat_peach(n):
if n == 1:
return 1
else:
return (eat_peach(n-1)+1) * 2
num = eat_peach(10)
print(num)
这样只需改变eat_peach()函数的变量即可,比如:输入eat_peach(20),表示20天剩余一个,求桃子总共个数
推荐内容
更多推荐
相关推荐
查看更多
llama_index

LlamaIndex(前身为GPT Index)是一个用于LLM应用程序的数据框架
halo

强大易用的开源建站工具。
freeCodeCamp

freeCodeCamp.org的开源代码库和课程。免费学习编程。
所有评论(0)