斐波那契數列的兩種優化

2021-10-21 17:48:49 字數 565 閱讀 5989

遞迴存在許多子問題的重複計算問題,時間複雜度較高。

public

class

fbsl

public

static

intfb

(int n)

}

首先我們需要乙個全域性的雜湊表來儲存當你第n個數所對應的前兩個數的和。

class

fb//一旦發現我曾經計算過我就不再遞迴計算,直接返回map集合存的值

if(map.

get(n)

!= null)

int res =

fb(n-1)

+fb(n-2);

map.

put(n,res)

;return res;

}

fb[n] = fb[n-1] + fb[n-2]

public

static

voidfb(

int n)

return fb[n-1]

;}

迴圈斐波那契數列 斐波那契數列的兩種實現

最先研究這個數列的人是義大利人斐波那契,leonardo fibonacci,他在描述兔子生長的數目時用上了這數列 每個月兔子的總對數,就是這樣乙個序列 1,1,2,3,5,8,13,21.這個序列從第三項開始,每一項都等於前兩項之和。在數學上,斐波那契數列是以遞迴的方法來定義 f 1 1 f 2 ...

斐波那契數列 的兩種實現方式

一 先要回答乙個問題 什麼是婓波那契數列?答案在這裡 二 看 1 第一方法 遞迴實現 public static void main string args public static int fibonacci int i else if i 1 return fibonacci i 2 fibo...

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

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