演算法之斐波納契數列遞迴和迭代實現

2022-07-22 07:45:18 字數 399 閱讀 8748

//在數學上,斐波納契數列以如下被以遞迴的方法定義:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n≥2)
//迭代的實現

$s[0] = 0;

$s[1] = 1;

for ($i = 2; $i < 100; $i++)

var_dump($s);

//遞迴實現

function fib($i)

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

}var_dump(fib(40));

在開發過程中盡量少用遞迴,由於遞迴在計算過程中有棧堆的消耗,效率遠遠沒有迭代快,大家可以測試一下,上面的遞迴實現是獲取的某一項的值,如果想和第一種的迭代實現,大家可以修改一下,傳乙個陣列進來即可

斐波納契數列的遞迴和非遞迴(迭代)演算法

查詢斐波納契數列中第 n 個數。所謂的斐波納契數列是指 斐波納契數列的前10個數字是 0,1,1,2,3,5,8,13,21,34 演算法實現 package project public class fibonacci 非遞迴 迭代 兩種都可以,空間複雜度為常數 public int fibite...

斐波納契數列

f 1 0 f 2 1 f n f n 1 f n 2 斐波納契數列決定審美和諧性 800年前,義大利的數學家李奧納多 斐波那契出版了驚世之作 算盤書 在 算盤書 裡,斐波納契提出了著名的 兔子生兔子的問題 有乙個人把一對兔 子放在四面圍著的地方。假定每個月一對兔子生下另外一對。而這新的一對在二個月...

斐波納契數列

斐波納契數列又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 此本章通過多種方式實現斐波納契數列 第一種 for 迴圈實現 a,b 0,1 for i in ...