程序员

JS中for循环之斐波拉切数列-兔子问题

2018-10-21  本文已影响4人  祝我好运zz

兔子问题:

有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第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);
上一篇 下一篇

猜你喜欢

热点阅读