zoukankan      html  css  js  c++  java
  • python 实现递归

    递归:递归就是自己调用自己,(递归是在一种直接或者简介调用自身的过程)
    1:递归就是在过程或函数力调用自身
    2:在使用递归策率时,必须要有一个明确的递归结束条件,称为递归的出口;
    3:递归算法解题通常显的很简洁,但是递归算法解题的运行效率较低,所以一般不提倡递归算法设计程序;
    4:在递归调用的过程当中系统为每一层的返回点,局部变量开辟了栈来存储,递归次数过多会造成栈溢出,
    
    要求:
    1:每次在调用的时候在规模上有所减少
    2:相邻两次之间有紧密的联系前一次腰围后一次做准备(通常前一次的输出就作为后一次的输入)
    3:问题的规模极小时必须直接给出解答而不再进行递归调用,因为每一次递归都是有条件的,
    
    
    # 递归执行了多少层,还要往外退出多少层
    # coding:utf8
    __author__ = 'bluesli'
    
    
    def calc(n):
        print(n)
        if n/2 >1:
            res = calc(n/2)
            print res#这里没有返回的化上一层就没有结束,还会来执行;
        print('n',n)
    
    
    calc(10)
    
    

    # 递归执行了多少层,还要往外退出多少层

    结果:

    递归过程:

    105.02.51.25n 1.25

    退出递归的过程:Nonen 2.5Nonen 5.0Nonen 10

  • 相关阅读:
    数位DP
    组合
    卢卡斯Lucas&扩展卢卡斯
    [HNOI2014]道路堵塞
    [模板]三维凸包(无讲解)
    [CF526G]Spiders Evil Plan
    [CCPC2019 ONLINE]H Fishing Master
    [CCPC2019 ONLINE]E huntian oy
    [CF1037H]Security
    [CF1037F]Maximum Reduction
  • 原文地址:https://www.cnblogs.com/bluesl/p/9079701.html
Copyright © 2011-2022 走看看