• 函数-函数递归


    同样的逻辑,当在结果之上再执行此逻辑,即可用递归。

    1. 必须有明确终止条件
    2. 每次执行,问题规模都应该减少
    3. 递归效率不高,层数多比较占内存,函数调用是通过栈实现

    先吃梨子

    def func(num):
        print(num)
        if num > 0:
            num=int(num/2)
            func(num)
    func(10)

    Python限制递归层数为1000,没个递归都会消耗一定内存

    查看最大限制:

    import sys
    print(sys.getrecursionlimit())

    递归退出分析

    递归退出是从最底层开始退出

    def func(num):
        print(num)
        if num > 0:
            num=int(num/2)
            func(num)
        #验证推出层级
        print(num)
    func(10)

    递归返回值

    给一个数字,除5次,无返回值方式

    def calc(n,c):
        print(n,c)
        if c < 5:
            n=int(n/2)
            c+=1
            calc(n,c)
    
    calc(100,0)

    获取返回值,上一层拿到下一层结果

    def calc(n,c):
        if c < 5:
            n=int(n/2)
            c+=1
            #返回执行结果到上一层,无该return则最底层返回到上一层,但上一层无法返回给它的上一层
            return calc(n,c)
        else:
            #返回最底层执行结果
            return n

  • 相关阅读:
    构建之法阅读笔记01
    学习进度13
    学习进度12
    个人冲刺十
    个人冲刺九
    个人冲刺八
    学习进度11
    个人冲刺七
    个人冲刺六
    [HDU 1232 ]畅通工程
  • 原文地址:https://www.cnblogs.com/yaya625202/p/8792931.html
Copyright © 2020-2023  润新知