python解決上樓梯問題

2022-08-26 09:21:08 字數 782 閱讀 9288

假設一段樓梯共n(n>1)個台階,小朋友一步最多能上3個台階,那麼小朋友上這段樓梯一共有多少種方法

(此為京東2023年筆試題目)

假設n為15,從第15個台階上往回看,有3種方法可以上來(從第14個台階上一步邁1個台階上來,從第13個台階上一步邁2個台階上來,從第12個台階上一步邁3個台階上來),

同理,第14個、13個、12個台階都可以這樣推算,從而得到公式f(n) = f(n-1) + f(n-2) + f(n-3),其中n=15、14、13、...、5、4。然後就是確定這個遞迴公式的結束條件了,

第乙個台階只有1種上法,第二個台階有2種上法(一步邁2個台階上去、一步邁1個台階分兩步上去),第三個台階有4種上法

**如下

n = int(input())

a = 1

b = 2

c = 4

for i in range(n-3):

c, b, a = a+b+c, c, b

print(c)

截圖如下

(來讓小朋友把這些走法挨個走一遍......)

這裡提一下上面的

c, b, a = a+b+c, c, b

這段**的用法

這段**是先計算右邊的數值,先計算a + b + c

然後從右邊開始先將b的值賦給a,再將c的值賦給b,最後將a + b + c的值賦給c

這段**等價於

m = a + b +c

a = b

b = c

c = m

(其實我還是喜歡下面這樣寫,容易懂)

python中解決上樓梯問題

解決此類問題 需要從後往前找規律,需要使用遞迴 一次1和2兩個台階,這是乙個斐波那契數列的應用 def fun n if n 0 return error elif n 1 return 1 elif n 2 return 2 else return fun n 2 fun n 1 print fu...

python上樓梯問題 python解決上樓梯問題

假設一段樓梯共n n 1 個台階,小朋友一步最多能上3個台階,那麼小朋友上這段樓梯一共有多少種方法 此為京東2016年筆試題目 假設n為15,從第15個台階上往回看,有3種方法可以上來 從第14個台階上一步邁1個台階上來,從第13個台階上一步邁2個台階上來,從第12個台階上一步邁3個台階上來 同理,...

上樓梯問題 棧

這樣說可能有些費解,尤其對於初學者來說,接觸這道題的時間可能還未觸及資料結構的層次,或者有所耳聞,但是卻沒有沒法有足夠的模擬和抽象化的能力理解棧是怎樣執行的,那麼我們就從這道題開始,盡量讓你用一道題就掌握棧這個資料結構 有n級的台階,你一開始在底部,每次可以向上邁最多k級台階 最少1級 問到達第n級...