[目前,我正在尝试编写JavaScript来进行斐波那契序列。我有数学部分,但是我们必须有一个名为fibonacciResults的数组,我不确定如何使用名为fibonacciResults的数组并对其进行初始化,这样fibonacci(0)将为0,fibonacci(1)将为1。此外,如果结果(fibonacci(n))之前从未计算过,请递归计算新结果并将其保存在fibonacciResults数组中。
document.querySelector('#calculate-fibonacci').addEventListener('click', function () {
var fibonacci; // Do not declare more variables here.
// WRITE YOUR fibonacci FUNCTION HERE
fibonacci = function fibonacci(n) {
fibonacciResults = [];
n = Math.round(n);
if (Number.isFinite(n) && n >= 0) {
if (n < 2) {
return n;
}
return fibonacci(n - 2) + fibonacci(n - 1);
}
return 0;
};
(function () {
var whichFibonacciNumber;
// Get the user's number.
whichFibonacciNumber = parseInt(document.querySelector('#fibonacci-input').value, 10);
// Use the fibonacci function to calculate the output.
document.querySelector('#which-fibonacci-number').textContent = whichFibonacciNumber;
document.querySelector('#fibonacci-number').textContent = fibonacci(whichFibonacciNumber);
}());
},否);
fibonacci = (function () {
var cache = {};
return function (n) {
var cached = cache[n];
if (cached) return cached;
if (n <= 1) return n;
console.log(n);
return (cache[n] = fibonacci(n - 2) + fibonacci(n - 1));
};
}());