zoukankan      html  css  js  c++  java
  • 递归逐级返回

    def recursive_test(n):
        print('数字:',n)
        if n==0:
            print('结束')
        else:
            recursive_test(n-1)
        print('number:',n)               #看这里 就加了这一句
    
    recursive_test(3)

    输出结果为

    数字: 3
    数字: 2
    数字: 1
    数字: 0
    结束
    number: 0
    number: 1
    number: 2
    number: 3

    为什么是返回下面的递增数字,这个和调用栈相关

    调用栈最经常被用于存放子程序的返回地址。在调用任何子程序时,主程序都必须暂存子程序运行完毕后应该返回到的地址。因此,如果被调用的子程序还要调用其他的子程序,其自身的返回地址就必须存入调用栈,在其自身运行完毕后再行取回。在递归程序中,每一层次递归都必须在调用栈上增加一条地址,因此如果程序出现无限递归(或仅仅是过多的递归层次),调用栈就会产生栈溢出

     参考:https://blog.csdn.net/qq_41239584/article/details/82253771

  • 相关阅读:
    第四章:初识CSS3
    第三章:表单
    第二章:列表、表格与媒体元素
    人机猜拳
    类的无参方法
    javadoc
    类与对象
    vuex笔记
    vi 编辑器常用快捷键
    知识点笔记(二维数组排序、统计数组重复个数、)
  • 原文地址:https://www.cnblogs.com/regit/p/14047141.html
Copyright © 2011-2022 走看看