什么是递归?

(1)递归必须有一个明确的结束条件,否则会报错

(2)每进入一个递归,问题的规模必须比之前都减少

(3)递归的效率不高,层次过多容易导致系统的内存溢出

定义一个函数:

def calc(n):
    print(n)
    calc(n)                  #定义一个函数,然后再调用自己,一直生生世世的进行循环自己,是一个死循环

  

def calc(n):
    print(n)
    if int(n/2)==0:               #这就是结束条件,避免递归函数无穷的进行下去
        return n
    return calc(int(n/2))        #递归的过程
calc(10)

#输出结果为10,5,2,1