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:递归效率不高 层次过多会导致栈溢出

     

  • 相关阅读:
    selenium 模拟键盘事件 复制粘贴、右键、回车等
    02安卓用户界面优化之(二)SlidingMenu使用方法
    02Android用户界面优化之(一)Android Fragment
    (九)Android权限系统
    Android SDK 在线更新镜像服务器资源
    (八)Android广播接收器BroadcastReceiver
    (七)Android中AIDL的应用与理解
    (六)Android中Service通信
    (五)认识Android中的Service
    Gradle中文乱码
  • 原文地址:https://www.cnblogs.com/gl-gl/p/9060416.html
Copyright © 2011-2022 走看看