斐波那契数列数列:0 1 1 2 3 5 8 13...,用数学公式表示为:fn(n) = fn(n-1) + fn(n-2), n>1; fn(0) = 0; fn(1) = 1; 简单的来说就是后一项是前两项只和。
1,2,4,8 //等比
0,2,4,6 //等比
/* 递归 */
function fb1(n) {
if (n < 1)
return -1;
if (n == 1 || n == 2)
return 1;
return fb1(n - 1) + fb1(n - 2);
}
console.log(fb1(12));//144
//不建议用递归,性能太差,超过40 就超级慢了50 需要四分多钟
方法2:循环实现
function fabonacci(n) {
var last = 0;
var laster = 1;
var current = last;
for (var i = 1; i <= n; i++) {
last = laster;
laster = current;
current = last + laster;
}
return current;
}
var start = new Date();
var result = fabonacci(50);
var end = new Date();
console.log('方法二', result, end.getTime() - start.getTime());