zoukankan      html  css  js  c++  java
  • 2018年12月10日 递归函数2

    递归特性:

    1必须有明确的结束条件
    2递归规模每次降低
    3递归效率偏低,容易导致栈溢出(函数是通过栈stack 这种数据结构实现的,调用一次函数,多增加一次栈帧,函数返回则减小一次,stack不是无限大,所以递归调用过多会导致溢出)

    PEOPLE = ["sxj","abc","def","ghi","alex",'mm',"syc"]
    def ask_way(PEOPLE):
        "问路函数"
        print("-"*60) # 制作分隔符
        if len(PEOPLE)==0:
            return  print("no one Know")
        man = PEOPLE.pop(0)  #每次删除一个人
        if man == "alex":
            return "%s Know" % man
        else:
            print("HI,%s,do you know?" % man)
            print("I do not know,U can ask %s"%PEOPLE)
        res=ask_way(PEOPLE)# 形成循环 由于pop已经删除第一个,所以循环
        print("%s say:"%man,res)#
        return res
    
    
    
    res=ask_way(PEOPLE)
    print(res)
    print(PEOPLE)

    def test(n):
        print(n)
        if n/2==0:  #判断语句
            return n#使用return跳出递归循环
        else:
            res=test(int(n/2))
            print( res )
            return res
    test(10)
    
    #递归至最深处,然后一层层向外反馈

  • 相关阅读:
    筱玛的迷阵探险(折半搜索+01字典树)
    递推
    thin mission 2021 10 8
    4级 -- 阅读
    c++——小知识
    stl
    string
    ting mission 2021.9.20
    ting mission 2021.9.27
    欧拉函数
  • 原文地址:https://www.cnblogs.com/python1988/p/10094677.html
Copyright © 2011-2022 走看看