1、求n的阶乘
2、解决猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不过硬,有多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到了第10天早上想吃时,只剩下一个桃子了。求第一天共摘了多少个桃子。
def factorial(n): # 定义factorial函数,形参为n
if n == 1: # if判断,退出条件n 等于 1
return 1 # 返回1
else:
return n * factorial(n-1) # 函数递归调用,计算n的阶乘
factorial(5)
# 返回结果:120
猴子第一天摘下若干个桃子,当即吃了一半,还不过硬,有多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到了第10天早上想吃时,只剩下一个桃子了。求第一天共摘了多少个桃子。
# 递归实现
def peach(day): # 定义函数peach,形参为day
if day == 1: # if判断 退出条件 day 等于 1
return 1 # 返回结果
else:
return (peach(day - 1) + 1) * 2 # 递归:计算函数peach,day减一天,+一个,乘以2为前一天的桃子数量。
# 递归实现
peach(10) # 计算结果,共摘了1534个桃子。
# 返回结果:1534
# 循环实现
def monkey_eat_peach2(): # 定义函数monkey_eat_peach2
peach = 1 # 退出条件
for i in range(9): # 循环
peach = (peach + 1) * 2 # 计算前一天的桃子数量
return peach
# 循环实现
print(monkey_eat_peach2())
# 返回结果:1534