用JS表示斐波拉契數列

2022-09-17 16:39:26 字數 1155 閱讀 8463

這個是我面試的時候遇到的一道面試題,當時面試官要我共享螢幕,以便看到我的編碼過程,我雖然之前了解過,但是印象不深,久而久之就忘記了,所以,突然一下叫我寫,理所當然也就沒有寫出來。不過讓我意識到,很多公司對於底層原理和基礎性的東西要求比較高,寫**的過程並不僅僅是趕專案的過程,也應該是記錄思維變化的過程。所以,我對它做了乙個整理。

斐波拉契數列,最開始是數學家列昂納多·斐波那契以兔子繁殖的例子引進:一對大兔子每個月生一對小兔子。每對小兔子乙個月後變成大兔子,再過乙個月也開始生小兔子,假設出生的兔子都不死亡,那麼,一年後有多少兔子?

兔子繁殖對數記錄

月份1月

2月3月

4月5月

6月7月

8月9月

10月11月

12月大兔子對數11

2358

1321

3455

89144

小兔子對數01

1235

8132134

5589

從表中可以可看出:

每個月小兔子對數=上個月大兔子對數

每個月大兔子對數=上個月大兔子對數+上個月小兔子對數

由此,以上兩個結論可得:

每個月大兔子對數=上個月大兔子對數+上上個月大兔子對數

一年後兔子數=144+89=233

所以,從第三月開始,每一月大兔子對數都等於前兩個月的大兔子對數之和。而每個月大兔子對數所形成的數列,就是斐波拉契數列。

用js**表示:

//

方式一:遞迴

function

fn(n)

else

}

//

方式二:遞迴(三元運算子)

function

fn(n)

//

方式三:迭代

function

fn(n)

return

arr

}

當然,如果只是適用於兔子繁殖例子,斐波拉契數列可能就不會引起這個多的關注。除了適用於兔子繁殖的例子,還適用於植物界的花瓣數,現在社會上的**等例子。

斐波拉契數列

斐波拉契數列 1 1 2 3 5 8 13 21 34.其中每乙個數字都是前兩個數字的和。遞迴計算 long fibonacci int n 非遞迴計算 long fibonacci int n return result 這個函式的遞迴實現使用了雙重遞迴 double recursion 函式對本...

斐波拉契數列

編寫彙編程序列印1 1000的斐波拉契數列 原始碼assume cs code,ss stack,ds data data segment fibo dw 0,1,64 dup 0 str db the fibo list is 0ah,0dh,data ends stack segment db ...

斐波拉契數列

斐波拉契數列 這個數列從第三項開始,每一項都等於前兩項之和。已知斐波拉契數列的前兩項都是1,我們定義求斐波拉契數列的第n項 n 50 的函式為fbnq,請補充完成對fbnq函式的定義。輸入格式 共一行,為乙個正整數。輸出格式 共一行,為乙個正整數。輸入樣例 7輸出樣例 13 斐波拉契數列 def f...