當前位置:成語大全網 - 書法字典 - python遞歸返回(n = = 1或n = = 2)和1或(digui (n-1)+digui (n-2))是什麽意思?

python遞歸返回(n = = 1或n = = 2)和1或(digui (n-1)+digui (n-2))是什麽意思?

這個程序可以重寫為:

def?帝圭(n:?int)?-& gt;?int:

如果?n?==1?還是?n?==?2:

回歸?1

否則:

回歸?帝圭(n?-?1)?+?帝圭(n?-?2)對於主程序語句

回歸?(n?==?1?還是?n?==?2)?然後呢。1?還是?(地桂(n?-?1)?+?帝圭(n?-?2)),它由兩個由or分隔的語句組成。首先,or左邊的語句

回歸?(n?==?1?還是?n?==?2)?然後呢。1這個語句相當於用if條件語句做的壹個基本條件,就是用來結束遞歸語句,防止無限遞歸。相當於:

如果?n?==?1?還是?n?==?2:

回歸?1是指當樓梯只有壹層或兩層時,直接輸出1,因為只有壹條路可以走(1層原地不動,二層只能走壹步)。

然後or右邊的語句

還是?帝圭(n?-?1)?+?帝圭(n?-?2)本句中的or與if語句中的or等價

否則:也就是說,如果它不屬於

n?==?1?還是?n?==?2、開始執行下面的遞歸步驟,步驟如下

帝圭(n?-?1)?+?帝圭(n?-?2)這裏要有壹個遞歸的思想。假設有n級樓梯,走第壹級的時候只有兩種選擇,要麽兩步,要麽壹步,那麽:

跨越第壹階的第壹步:

那麽此時就剩下(n-1)級樓梯了,這個n-1級樓梯交叉法自然就變成了地軌(n-1)。

第壹步跨越兩步:

那麽此時就剩下(n-2)級樓梯了,這n-2級樓梯的穿越方式自然就變成了地軌(n-2)。

所以對於n級樓梯,總* * *交叉建築法是

帝圭(n?-?1)?+?帝圭(n?-?2)物種。

對於n-1或n-2樓梯,他們會有自己的。

帝圭(n?-?1)?+?帝圭(n?-?2)#?註意這裏的n代表是。n?-?1還是n?-?2,不是#?原來的n .這個方法,如果這樣下去,形成壹個遞歸,直到樓梯數n減少到1或2,遞歸結束。

題外話,其實這個問題是斐波那契數列的壹個應用,抽象成壹個數學問題:

有斐波那契數1,1,2,3,5,8,13,21,...?從第三個數開始,每個數都是前兩個數的和,求第n個數的值。

如果變成這樣的問題,可能想想更好。