Python之练习(四)

Python之练习(四)

递归练习

1、求n的阶乘

2、解决猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不过硬,有多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到了第10天早上想吃时,只剩下一个桃子了。求第一天共摘了多少个桃子。


1、求n的阶乘

def factorial(n): 	# 定义factorial函数,形参为n
    if n == 1:		# if判断,退出条件n 等于 1
        return 1	# 返回1
    else: 
        return n * factorial(n-1) # 函数递归调用,计算n的阶乘


factorial(5)

# 返回结果:120

2、解决猴子吃桃问题

猴子第一天摘下若干个桃子,当即吃了一半,还不过硬,有多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到了第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

你可能感兴趣的:(Python,python)