斐波那契数列求第n项值
斐波那契数列
已知: 斐波那契数列第n项是除前两项以外,第n-2与第n-1项的和:S(n) = S(n-2) + S(n-1)。
优化前
// 优化前
const n = "";
function getFibonacciSequenceItem(n) {
let arr = [0, 1];
let item = 0;
for (let i = 2; i < n; i++) {
item = BigInt(arr[i - 2]) + BigInt(arr[i - 1]);
arr.push(item);
}
return item;
}
console.log(getFibonacciSequenceItem(10));
优化后
// 优化后丢弃了无用的数据 在n = 30000 时优化后时间大约为优化前一半,且减少了内存压力
const n = "";
function getFibonacciSequenceItem(n) {
let arr = [0, 1];
let item = 0;
if (n < 2) {
return arr[n];
}
for (let i = 2; i < n + 1; i++) {
item = BigInt(arr[0]) + BigInt(arr[1]);
arr[0] = arr[1];
arr[1] = item;
}
return item;
}
getFibonacciSequenceItem(10);

浙公网安备 33010602011771号