/* 方案1 使用遍历找到第n项的值 */
//fn(1) =1
//fn(2) =1
//fn(n>2)=fn(n-2)+fn(n-1)
function fibonacci(n) {
var a0 = 1;
var a1 = 1;
var result = 1;
for (var i = 2, temp = null; i < n - 1; i++) {
temp = a0;
a0 = a1;
a1 = a0 + temp;
}
if (n > 2) {
result = a0 + a1;
}
return result;
}
console.group('fibonacci')
console.log(fibonacci(12));
console.log(fibonacci(1));
console.log(fibonacci(2));
console.log(fibonacci(3));
console.log(fibonacci(9));
console.groupEnd()
/* 方案2 使用递归来实现呢 */
function fibonacci1(n) {
var result = 1;
if(n>2){
result = fibonacci1(n - 1) + fibonacci1(n - 2);
}
return result;
}
console.group('fibonacci1')
console.log(fibonacci1(12));
console.log(fibonacci1(1));
console.log(fibonacci1(2));
console.log(fibonacci1(3));
console.log(fibonacci1(9));
console.groupEnd()