zoukankan      html  css  js  c++  java
  • 递归

    1 def calc(n):
    2     print(n)
    3     if int(n/2) == 0: #递归出口
    4        return n
    5     res=calc(int(n / 2))
    6     return res
    7 calc(10)
    运行结果:
    10
    5
    2
    1
    

     

    import time
    person_list=['alex','wangzi','kaixin','dashu']
    def ask_way(person_list):
        print('_'*60)
        if len(person_list) == 0:
            return '没有人知道在哪'
        person=person_list.pop(0)
        if person == 'dashu':
            return '%s说:我知道,在中心街' %person
        print('hi,请问[%s],你知道www在哪吗?'%person )
        print('%s 回答:不知道 但念在你态度诚恳 我去帮你问问%s...'%(person,person_list))
        time.sleep(2)
        res=ask_way(person_list)  #调用自己     
        print('%s问的结果是:%res'%(person,res))
        return res
    res=ask_way(person_list)
    print(res)
    运行结果:
    ____________________________________________________________
    hi,请问[alex],你知道www在哪吗?
    alex 回答:不知道 但念在你态度诚恳 我去帮你问问['wangzi', 'kaixin', 'dashu']...
    ____________________________________________________________
    hi,请问[wangzi],你知道www在哪吗?
    wangzi 回答:不知道 但念在你态度诚恳 我去帮你问问['kaixin', 'dashu']...
    ____________________________________________________________
    hi,请问[kaixin],你知道www在哪吗?
    kaixin 回答:不知道 但念在你态度诚恳 我去帮你问问['dashu']...
    ____________________________________________________________
    kaixin问的结果是:'dashu说:我知道,在中心街'
    wangzi问的结果是:'dashu说:我知道,在中心街'
    alex问的结果是:'dashu说:我知道,在中心街'
    dashu说:我知道,在中心街
    
    Process finished with exit code 0
    

    递归特性:

    1:必须有明确的出口

    2:每次进入更深一层递归 问题规模减小

    3:递归效率不高 层次过多会导致栈溢出

     

  • 相关阅读:
    哈夫曼树
    顺序栈和链栈
    线性表(二) 单链表的增删改查及源码 (修改)
    线性表(二):单链表的增删改查及源码
    线性表(一):顺序表的增删改查及源码
    从头学数据结构--跟随浙大陈越姥姥的步伐
    Java学习笔记--scanner获取键盘输入
    关于方法、变量、类等命名规范
    Java学习笔记--类型自动转换、强制类型转换、溢出
    java学习笔记--重载
  • 原文地址:https://www.cnblogs.com/gl-gl/p/9060416.html
Copyright © 2011-2022 走看看