Fibonacci

Run Settings
LanguageJavaScript
Language Version
Run Command
function fibonacciIterative(number){ fibonacci_sequence = {0:0, 1:1}; let prev = 0; for(i=2; i<=number; i++){ let prev_minus_1 = i - 2; let prev = i - 1; fibonacci_sequence[i] = fibonacci_sequence[prev_minus_1] + fibonacci_sequence[prev]; } // console.log(fibonacci_sequence); console.log(number + " => " + fibonacci_sequence[number]); } let recursiveCount = 0; function fibonacciRecursive(number) { recursiveCount++; if (number < 2) { return number; } return fibonacciRecursive(number-2) + fibonacciRecursive(number-1); } function fibonacciIterative2(number) { let answer = 0; let prev = 0; let temp = 0; for (let i = 0; i <= number; i++) { temp = answer; answer = answer + prev; prev = temp; if (i === 1) { answer = 1 } } console.log(number + " => " + answer); } let memoizedCount = 0; function fibonacciMemoized(n) { let cache = {}; return function fibonacci(n) { memoizedCount++; if (n < 2) { return n; } if (n in cache) { return cache[n]; } else { cache[n] = fibonacci(n-1) + fibonacci(n-2); return cache[n]; } } } fibonacciIterative2(4); fibonacciIterative(10); console.log("10 => " + fibonacciRecursive(10)); fibonacciIterative(11); console.log("11 => " + fibonacciRecursive(11)); fibonacciIterative2(11); const fibonacci = fibonacciMemoized(); console.log("With memoization: " + fibonacci(11)); console.log("recursiveCount: " + recursiveCount); console.log("memoizedCount: " + memoizedCount);
Editor Settings
Theme
Key bindings
Full width
Lines