python基础----Day08习题

本文介绍了递归思想的基本概念,通过实例解析如何使用递归解决阶乘计算问题,详细展示了如何逐步拆解复杂问题。同时,文章还提供了一个有趣的年龄问题,同样运用递归方法找出答案,加深了对递归的理解。通过这两个例子,读者可以更好地掌握递归在实际问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容概要: 递归思想及其练习

递归思想及其练习

递归思想:将大的项目/问题逐渐拆解为小问题

第一题:实现阶乘的计算

#定义函数:
def factorial_function(n):
    if n == 1: #递归函数要有判断条件使得递归结束!避免死递归!
        return 1
    else:
        return n*factorial_function(n-1)
if __name__ == '__main__': #主函数开始,主函数下的内容要有缩进
	#调用自定义函数
	result = factorial_function(5) #求5的阶乘
	print(result) 

思路:
要实现5的阶乘,这是一个大的问题,我不会,但是我知道:
5的阶乘 = 54的阶乘
要实现4的阶乘,这是一个大的问题,我不会,但是我知道:
4的阶乘 = 4
3的阶乘

1的阶乘就等于1,就这样一步一步拆解为最简单的

代码解析:

def factorial_function(n): #输入参数5
    if n == 1: #进行条件判断,5 != 1 ,进入else语句
        return 1
    else:
        return n*factorial_function(n-1) 
'''
该次函数的返回结果为5*factorial_function(4),factorial_function(4)再次调用该函数,参数变为4,返回结果为 4*factorial_function(3),依次类推,一直到n为1,则前面累计的结果为:5*4*3*2*1,由此实现了阶乘的计算

'''
if __name__ == '__main__': 
	result = factorial_function(5) 
	print(result) 

第二题:

5 个人坐在一起,问第 5 个人多少岁 ? 他说比第 4 个人大两岁.问第 4 个人多少
岁 ? 他说比第三个人大两岁, 问第三个人,又说比第二个人大两岁,问第二个人, 说比第一个人大两岁,最
后问第一个人, 他说是 10 岁,请问第 5 个人多大?

#观察题目,明显的递归思想的应用,需进行条件判断避免
def age_function(n):  
	if n == 1:
		return 10
	else:
		return age_function(n-1) + 2
result = age_function(5)
print(result)	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w沉默味道w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值