Quick actions

cmd+k|ctrl+k

Navigation

Languages

Fibonacci

Snippet info

Language

JavaScript

Visibility

public

Author

varun.muriyanat

Created

2025-05-30T12:33:26.668866Z

Updated

2025-06-09T21:39:32.971257Z

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);
INFO