函數的遞歸調用

1、定義:函數的遞歸調用是函數的嵌套調用的一種特殊形式,表現爲在調用一個函數的過程當中又直接或間接地調用了自身,實現了循環,因此說遞歸的本質就是循環。函數

def f1():
    f1()  # 自我循環調用

def f2():
    f3()
def f3():
    f2()
# 互相循環調用

2、遞歸調用實現的循環與while循環的區別:while循環能夠經過保持條件永遠爲真實現無限循環,可是每次循環不會額外申請內存空間。遞歸調用每次都會申請新的局部空間,因此默認有上限次數1000,該次數能夠修改。spa

3、遞歸調用的兩個階段code

  一、回溯:一層層的調用直至知足終止條件的過程稱爲回溯。blog

  二、遞推:從知足終止條件向外層逐層返回的過程稱爲遞推。遞歸

def add(n):
    if n == 1:
        return 100
    return add(n - 1) + 1
print(add(6))  # 結果爲 105
# add(6) = add(5) + 1
# add(5) = add(4) + 1
# add(4) = add(3) + 1
# add(3) = add(2) + 1
# add(2) = add(1) + 1 
# 以上是回溯過程
# add(1) = 100
# add(2) = 100 + 1 = 101
# add(3) = 101 + 1 = 102
# add(4) = 102 + 1 = 103
# add(5) = 103 + 1 = 104
# add(6) = 104 + 1 = 105
# 以上是遞推過程
相關文章
相關標籤/搜索