之前算斐波那契数列都是算前两个数相加实现的
比如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>