函數(shù)內(nèi)部調(diào)用自己本身准谚,這個函數(shù)就是遞歸函數(shù)。
遞歸一般是用來解決一些復(fù)雜的數(shù)學(xué)問題樊破,比如,斐波那契數(shù)列捶码。
舉個簡單的例子或链,計算階乘 n! = n * (n - 1)!
def factorial(n):
if n == 1:
return 1
return n * factorial(n-1)
這個就是一個簡單得遞歸調(diào)用得例子,下面我們看一下顯示結(jié)果祈纯。
>>> factorial(5)
120
>>> factorial(20)
2432902008176640000
下面我們來探討一下函數(shù)得計算過程,我們倒著往前推:
5 *4 *3 *2
4 *3 *2
3 *2
2 1
首先它會計算最底層得結(jié)果腕窥,也就是1,此時factorial(n-1)=1簇爆,然后返回21得結(jié)果,此時factorial(n-1)=2入蛆,以此類推...
這個就是遞歸得簡單應(yīng)用。