調用自身的函數是遞歸函數。當某個問題根據其本身來定義時,使用這種方法。雖然這涉及到迭代,但是使用迭代的方法來解決這樣的問題可能是乏味的。遞歸方法為一個看似複雜的問題提供了一個非常簡潔的解決方案。它看起來很迷人,但可能很難理解!
遞歸最常見的例子是階乘的計算。數學上階乘定義為:n!= n * (n-1)!
我們使用階乘本身來定義階乘。因此,這是編寫遞歸函數的合適情況。讓我們擴展上面的定義,計算階乘值 5。
5! = 5 X 4!
5 X4 X 3!
5 X4 X 3 X 2!
5 X4 X 3 X 2 X 1!
5 X4 X 3 X 2 X 1
= 120
雖然我們可以使用一個循環來執行這個計算,但是它的遞歸函數涉及到通過遞減數字來連續調用它,直到它達到 1。下面是計算階乘的遞歸函數。
Example: Recursive Function
def factorial(n):
if n == 1:
print(n)
return 1
else:
print (n,'*', end=' ')
return n * factorial(n-1)
上面的遞歸函數可以如下調用。
>>> factorial(5)
5 * 4 * 3 * 2 * 1
120
當以 5 作為參數調用階乘函數時,會連續調用同一個函數,同時減少 5 的值。在參數達到 1 後,函數開始返回到它們先前的調用。第一次調用的返回值是所有調用的返回值的累積乘積。*
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130845.html