[英]Write code that uses an immediately-invoked function expression (IIFE) to create the fibonacci function where indicated
目前,我正在嘗試編寫 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);
}());
}, false);
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));
};
}());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.