在python中,函式內部可以呼叫其他函式,也可以呼叫函式自身,這種函式內部呼叫自身的函式我們稱為遞迴函式。
舉個例子,階乘(factorial)的計算:n! = 1*2*3*...*n
def factorial(n):
if n == 1:
return 1
return n * factorial(n-1)
factorial(n)
就是一個遞迴函式,試試執行:
>>> factorial(1)
1
>>> factorial(5)
120
>>> factorial(10)
3628800
分析factorial(5)
計算過程
===> factorial(5)
===> 5*factorial(4)
===> 5*4*factorial(3)
===> 5*4*3*factorial(2)
===> 5*4*3*2*factorial(1)
===> 5*4*3*2*1
===> 120
遞迴函式的優點是定義簡單,邏輯清晰。理論上,所有的遞迴函式都可以寫成迴圈的方式,但迴圈的邏輯不如遞迴清晰。
本作品採用《CC 協議》,轉載必須註明作者和本文連結