Python 台階問題 斐波那契

2021-09-24 11:15:40 字數 650 閱讀 8226

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2)

第二種記憶方法

def memo(func):

cache = {}

def wrap(*args):

if args not in cache:

cache[args] = func(*args)

return cache[args]

return wrap

@memo

def fib(i):

if i < 2:

return 1

return fib(i-1) + fib(i-2)

第三種方法

def fib(n):

a, b = 0, 1

for _ in xrange(n):

a, b = b, a + b

return b

**台階問題

乙隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

fib = lambda n: n if n < 2 else 2 * fib(n - 1)

台階 dp 斐波那契

在玩電腦遊戲 lucky luke 時,bom到達了乙個場景,lucky必須爬上乙個由n個台階組成的樓梯。樓梯從下到上編號為1到n。lucky可能會往上爬一步,或者可能一次跳兩步。然而,一些台階被打破了,lucky不能站在上面。一開始,lucky站在第一階 第一階永遠不會破 突然,bom想到了乙個問...

跳台階問題 斐波那契數列

本篇文章有兩道題。對於本題,前提只有 一次 1階或者2階的跳法。a.如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n 1個台階,跳法是f n 1 b.假定第一次跳的是2階,那麼剩下的是n 2個台階,跳法是f n 2 c.由a b假設可以得出總跳法為 f n f n 1 f n 2...

超級台階 斐波那契類

小明在坐景馳科技研發的無人車到達了目的地。從無人車下來以後,小明看到了乙個長長的樓梯。有乙個n級台階的樓梯,小明一次可以向上跳1步,兩步,甚至是n步,請問小明跳到n級台階有多少種跳法?第一行輸入乙個整數t,代表有t組樣例 t 30 接下來的t行,都用乙個整數n,表示樓梯有n級台階 1 n 30 輸出...