1. 程式人生 > >JS中for迴圈之斐波拉切數列-兔子問題

JS中for迴圈之斐波拉切數列-兔子問題

兔子問題:

有個人想知道,一年之內一對兔子能繁殖多少對?於是就築了一道圍牆把一對兔子關在裡面。已知一對兔子每個月可以生一對小兔子,而一對兔子從出生後第3個月起每月生一對小兔子。假如一年內沒有發生死亡現象,那麼,一對兔子一年內(12個月)能繁殖成多少對?(兔子的規律為數列,1,1,2,3,5,8,13,21)

 

其實這就是斐波拉切數列:一個數列當前項等於前兩項之和。

所以,要求第12個月的值,也就是求數列第12項的值;解決思路:

      1.定義三個變數,一個變數是數列第一項值,一個變數是第二項值,一個變數是中間變數;

      2.為了依次得到之後的值,也就是最開始的第二項值變成了之後的第一項值(需要把之前的第二項值儲存在中間變數中),之後的第二項值變成了之前兩項值的和。

 

    js程式碼如下:

//1.定義三個變數,然後兩個初始化值。第三個作為儲存使用
    var temp;
    var num1 = 1;
    var num2 = 1;
    //2.先把之前的第二個變數儲存在中間變數,然後把之後的第二個變數賦值為之前兩個變數的和
    for(var i=1;i<=10;i++){
        temp = num2;
        num2 = num1 + num2;
        //3.把儲存的中間變數賦值給之後的第一個變數。
        num1 = temp;
        //4.執行10次。(因為前兩項不需要計算,所以只需要執行10次)
    }

   console.log(num2);