新聞中心
調(diào)用自身的函數(shù)是遞歸函數(shù)。當(dāng)某個(gè)問題根據(jù)其本身來(lái)定義時(shí),使用這種方法。雖然這涉及到迭代,但是使用迭代的方法來(lái)解決這樣的問題可能是乏味的。遞歸方法為一個(gè)看似復(fù)雜的問題提供了一個(gè)非常簡(jiǎn)潔的解決方案。它看起來(lái)很迷人,但可能很難理解!

遞歸最常見的例子是階乘的計(jì)算。數(shù)學(xué)上階乘定義為:n!= n * (n-1)!
我們使用階乘本身來(lái)定義階乘。因此,這是編寫遞歸函數(shù)的合適情況。讓我們擴(kuò)展上面的定義,計(jì)算階乘值 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
雖然我們可以使用一個(gè)循環(huán)來(lái)執(zhí)行這個(gè)計(jì)算,但是它的遞歸函數(shù)涉及到通過遞減數(shù)字來(lái)連續(xù)調(diào)用它,直到它達(dá)到 1。下面是計(jì)算階乘的遞歸函數(shù)。
Example: Recursive Function
def factorial(n):
if n == 1:
print(n)
return 1
else:
print (n,'*', end=' ')
return n * factorial(n-1)
上面的遞歸函數(shù)可以如下調(diào)用。
>>> factorial(5)
5 * 4 * 3 * 2 * 1
120
當(dāng)以 5 作為參數(shù)調(diào)用階乘函數(shù)時(shí),會(huì)連續(xù)調(diào)用同一個(gè)函數(shù),同時(shí)減少 5 的值。在參數(shù)達(dá)到 1 后,函數(shù)開始返回到它們先前的調(diào)用。第一次調(diào)用的返回值是所有調(diào)用的返回值的累積乘積。*
本文題目:Python中的遞歸
文章鏈接:http://www.dlmjj.cn/article/dpdiooj.html


咨詢
建站咨詢
