作业
- 2.猴子吃桃问题(递归):
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?
# 基线条件:当天数等于1的时候
# 递归条件:假设猴子第一天摘了X1个桃子
# 第一天的桃子:X1 第一天吃的桃子:(X1/2)+1 剩余的桃子X2:(0.5*X1)-1
# 第二天的桃子:X2 第二天吃的桃子:(X2/2)+1 剩余的桃子X3:(0.5*X2)-1
# 第三天的桃子:X3 第三天吃的桃子:(X3/2)+1 剩余的桃子X3:(0.5*X1)-1
# ....
# 第十天的桃子:X10 第十天吃的桃子:(X1/2)+1 剩余的桃子X10:1
# 所以得出递归条件:
# Xn = ((Xn-1)+1)*2
def monkey(day):
if day == 1:
return 1
else:
return (monkey(day - 1) + 1) * 2
print(monkey(10))