本文主要是介绍猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少
分析
(今天/2+1)=明天;今天=2*(明天+1)
1,可以用递归;2,可以用循环
代码
# 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
# 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
# 以后每天早上都吃了前一天剩下的一半零一个。
# 到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少
# 解析:
# (今天/2+1)=明天;今天=2*(明天+1)
# 1,可以用递归;2,可以用循环# 递归:
def function1(day, peach):if day == 1:return peachelse:return function1(day - 1, 2 * (peach + 1))# 循环:
def function2(day, peach):while day > 1:peach = (peach + 1) * 2day -= 1return peachfor i in range(1, 11):print('递归:如果用了{}天只剩下1个桃子,那么一共摘了{}个;''循环:如果用了{}天只剩下1个桃子,那么一共摘了{}个'.format(i, function1(i, 1), i, function2(i, 1)))
结果
这篇关于猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!