function fibonacci(n) {
if ([1, 2].includes(n)) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
const advanceFibonacci = (function advanceFibonacci() {
const cache = []
return function test(n) {
if ([1, 2].includes(n)) return 1;
if (!cache[n]) cache[n] = test(n - 1) + test(n - 2)
return cache[n]
}
})();
function fibonacci1(n) {
if ([1, 2].includes(n)) return 1;
const list = [1, 1]
for (let i = 2; i <= n - 1; i++) {
list.push(list[i - 1] + list[i - 2])
}
console.log(list)
return list[n - 1]
}
console.log(fibonacci1(50))
console.log(advanceFibonacci(50))