内容概要: 递归思想及其练习
递归思想及其练习
递归思想:将大的项目/问题逐渐拆解为小问题
第一题:实现阶乘的计算
#定义函数:
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的阶乘 = 43的阶乘
…
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)