您的位置:首頁>正文

Python遞迴

在函數內部, 可以調用其他函數。 如果一個函數在內部調用自身本身, 這個函數就是遞迴函數。

舉個例子, 我們來計算階乘 n! = 1 * 2 * 3 * ... * n, 用函數 fact(n)表示,

可以看出:

fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n

所以, fact(n)可以表示為 n * fact(n-1), 只有n=1時需要特殊處理。

於是, fact(n)用遞迴的方式寫出

分類:python

python中遞迴函數的使用:

def division(n): print(n) if n/2==0: return n#遞迴特性一:

必須有一個明確的結束條件 return division(n/2)#遞迴特性而:

每次遞迴都是為了讓問題規模變小division(10)#遞迴特性三:

遞迴層次過多會導致棧溢出, 且效率不高這種方式運行python檔會報:

RecursionError:

maximum recursion depth exceeded while calling a Python object錯誤原因是有小數的存在, 有科學技術法的出現會導致遞迴一直進行, 所以需要將n/2轉換為int類型如下:

def division(n):

print(n) if int(n/2)==0:

return n#遞迴特性一:

必須有一個明確的結束條件

return division(int(n/2))#遞迴特性而:

每次遞迴都是為了讓問題規模變小division(10)#遞迴特性三:

遞迴層次過多會導致棧溢出, 且效率不高運行結果如下:10

5

2

1

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示