斐波那契數列衍生演算法題

2021-09-24 06:47:52 字數 639 閱讀 7036

假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

首先我們最快想到的實現方式就是遞迴

f(1)=1

f(2)=2

f(n)=f(n-1)+f(n-2)

複製**

func climbstairs(n int) int 

if n == 2

return climbstairs(n-1) + climbstairs(n-2)

}複製**

func climbstairsloop(n int) int 

if n <= 2

for i := 3; i <= n; i++

return step[n]

}複製**

func climbstairs(n int) int 

result := 0

for i := 3; i <= n; i++

return result

}複製**

「斐波那契數列」衍生題

斐波那契數列是這樣的一組數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 1,f 2 1,f n f n 1 f n 2 n 3,n n 即大於2的部分是由前兩個相加獲得。若要求第 n 個數的值,我們可以用遞迴也可以通過迭代的方式求解 1 遞迴 ...

演算法題 001 斐波那契數列

斐波那契數列的python版本 coding utf 8 斐波那契數列實現 import functools from typing import generator 方法一 使用遞迴 需要快取 functools.lru cache maxsize none def feibo num int i...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...