python:从入门到放弃 11 函数递归

函数递归

即函数在运行过程中直接或者间接的调用了自身

'''直接调用'''
def index():
    print('from index')
    index()
index()
# 会报错
'''间接调用'''
def index():
    print('from index')
    func()
def func():
    print('from func')
    index()
func()
# 会报错

'''
所以递归需要满足两个要求
1.每次递归 复杂度必须降低
即越往下递归应该离解决问题的答案越近
2.必须要有明确的结束条件
'''

例子

'''
需求:我想知道我们班坐在第一排的某个学生年龄
过程:
    我问他多大了 他调皮不告诉我 说比后面那个同学大两岁
    后面的说比他后面的大两岁
    ...
    问到最后你一排 终于开口说 18岁
    ...
    知道最后一排的年级回推就可以知道第一排的年级
名词:
    递推:一层层往下问
    回溯:根据结果推结论
'''
def get_age(n):
    if n == 1:
        return 18  # 有明确的结束条件
    return get_age(n-1) + 2
print(get_age(4))
posted @ 2022-03-21 21:43  Rain_Kz  阅读(22)  评论(0编辑  收藏  举报