1.概念
遞迴函式:乙個會呼叫自身的函式【在乙個函式的內部,自己呼叫自己】2.使用遞迴呼叫
遞迴中包含了一種隱式的迴圈,他會重複指定某段**【函式體】,但這種迴圈不需要條件控制
使用遞迴解決問題思路:
a.找到乙個臨界條件【臨界值】
b.找到相鄰兩次迴圈之間的關係
c.一般情況下,會找到乙個規律【公式】
**演示:注意:以後在實際專案中盡量少用遞迴,如果隱式迴圈的次數太多,會導致記憶體洩漏【棧溢位】#案例一
""" 1 2 3 4 5 6 7 8 9 10 11.。。。
斐波那契數列:1,1,2,3,5,8,13,21,34,55,89.....
解決問題:報乙個數,輸出數列中對應的數
規律:a.第乙個位置和第二個位置上數是固定的,都是1
b.第n個位置上的數:第 n - 1 的數 + 第 n - 2 的數
r1 = func1(1) ------>1
r2 = func1(2) ------>1
r3 = fun1(3) ------>func1(1) + func1(2)----->1 + 1 = 2
r4 = fun1(4)------->fun1(3) + fun1(2) ----->func1(1) + func1(2) + fun1(2) ---->1 + 1 + 1 = 3
r5 = fun1(5) ----->fun1(4) + fun1(3) ----->fun1(3) + fun1(2) + func1(1) + func1(2)--->func1(1) + func1(2) ++ fun1(2) + func1(1) + func1(2)--->5
.....
rn = fun1(n) ----->fun1(n- 1) + fun1(n - 2)
"""def func1(num):
#臨界值
if num == 1 or num == 2:
return 1
else:
#print("~~~~",num)
result = func1(num- 1) + func1(num - 2) #result = func1(1) + func1(2) --->1 + 1 =2
return result
print(func1(10))
# 例如使用遞迴計算1~某個數之間的和
"""add(1) = 1 :臨界值
add(2) = add(1) + 2
add(3) = add(2) + 3 ---->add(1) + 2 + 3 = 1 + 2 + 3
add(4) = add(3) + 4---->add(2) + 3 + 4 ---->add(1) + 2 + 3 + 4---->1 + 2 + 3 + 4
....
add(n) = add(n - 1) + n
"""def add(num):
"""n = 1
sum = 0
while n <= 100:
sum += n
n += 1
return sum
sum1 = 0
for i in range(1,num + 1):
sum1 += i
return sum1
"""#使用遞迴實現
if num == 1:
return 1
else:
return add(num - 1) + num
print(add(100))
優點:簡化**,邏輯清晰
python遞迴函式例項 python遞迴函式
python遞迴函式 什麼是遞迴?遞迴,就是在函式執行中自己呼叫自己 示例 def recursion n 定義遞迴函式 print n 列印n recursion n 1 在函式的執行種呼叫遞迴 recursion 1 呼叫函式 這個函式在不斷的自己呼叫自己,每次呼叫n 1,看下執行結果 998t...
python靜態遞迴函式 python遞迴函式
一 遞迴的定義 1.什麼是遞迴 在乙個函式裡在呼叫這個函式本身 2.最大遞迴層數做了乙個限制 997,但是也可以自己限制 1 deffoo 2 print n 3 n 1 4 foo n 5 foo 1 驗證997 3.最大層數限制是python預設的,可以做修改,但是不建議你修改。因為如果用997...
python靜態遞迴函式 python 遞迴函式
前言 本篇關於遞迴基本借鑑下面部落格講解加入自己理解。1.遞迴函式定義 如果乙個函式在函式內部呼叫自己,那這個函式就是遞迴函式。如 defsum arg,stop print arg if arg arg arg sum arg,stop sum 1,20 2.遞迴的特性 1 必須有乙個明確的結束條...