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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值