Manfred Hu的技术博客 http://www.cnblogs.com/manfredHu/ Stay hungry,stay foolish.Keep looking,don't settle.

斐波那契数列公式算法-JS实现

之前算斐波那契数列都是算前两个数相加实现的

比如0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368

2=1+1

3=1+2

5=2+3

8=3+5

……


 

其实还有另外一个规律:

2 = 1*2-0
3 = 2*2-1
5 = 3*2-1
8 = 5*2-2
13= 8*2-3
21=13*2-5

……


 

下面是JS实现的代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>JS斐波那契数列</title>
<meta name="description" content="JS斐波那契数列">
<meta name="keywords" content="JS斐波那契数列">
<link href="" rel="stylesheet">
<script type="text/javascript">
    /*发现了一个神奇的算法简化斐波那契数列,顺手用js实现了。
    下面的关键句就是规律
     0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368
     可以发现
     2 = 1*2-0
     3 = 2*2-1
     5 = 3*2-1
     8 = 5*2-2
     13= 8*2-3
     21=13*2-5
     ……下面你懂的

    */
    var a = [];
    a[0]=0;
    a[1]=1;
    a[2]=1;
    var i;
    for(i=3;i<99;i++){
        a[i] = 2*a[i-1]-a[i-3];/*关键句*/
        console.log(a[i]);
    }

</script>
</head>
<body> 
</body>
</html>

 

posted @ 2015-04-01 22:29  manfredHu  阅读(1190)  评论(0编辑  收藏  举报
推荐
返回顶部