簡體   English   中英

編寫代碼,使用立即調用的函數表達式 (IIFE) 在指定的位置創建斐波那契函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM