Quick actions

cmd+k|ctrl+k

Navigation

Languages

Fibonacci

Snippet info

Language

JavaScript

Visibility

public

Author

ubaidillah.hf

Created

2022-09-22T07:32:10.173394Z

Updated

2022-09-22T07:57:03.902752Z

/**
* Example: 0,1,1,2,3,5,8,13,21 dst
*/

const start = performance.now();

function memoize(fn){
    const localCache = {}
    
    return function(...args){
        if (localCache[args]){
            return localCache[args]
        }
        
        const result = fn.apply(this, args);
        localCache[args] = result;
        
        return result;
    }
}

function slowFibo(n){
    if (n < 2){
        return n
    }
    
    return fibo(n-1) + fibo(n-2);
}

// Fast fibo
const fibo = memoize(slowFibo);
console.log(fibo(40))

// Slow fibo
// const fibo = slowFibo;
// console.log(fibo(40))

const end = performance.now();
console.log(`Executed ${((end - start)/1000).toFixed(5)} Seconds`)
INFO