python基础----Day08习题

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

递归思想及其练习

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

第一题:实现阶乘的计算

#定义函数:
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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

w沉默味道w

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

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

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

打赏作者

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

抵扣说明:

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

余额充值