// 计算量大,计算慢
function fibonacci(n) {
if (n === 1 || n === 2) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
console.log(fibonacci(41));
// 用数组存起来,缺点浪费内存
function fiUpdate(n) {
let arr = [0, 1, 1];
for (let i = 3; i <= n; i++) {
arr[i] = arr[i-1] + arr[i-2];
}
return arr[n];
}
console.log(fiUpdate(41));
// 使用变量实现
function fiUpdate2(n) {
let pre = 1;
let cur = 1;
let data;
if (n <= 2) {
return 1;
} else {
for (let i = 3; i <= n; i++) {
data = pre + cur;
pre = cur;
cur = data;
}
}
return data;
}
console.log(fiUpdate2(41));
04-17
2479