DP: Fibonacci

by bhupendra negi

HTML

<script src="ttps://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>

JavaScript

// fibonacii with memoi=zation

const memory = (fn => {
  let cache = {};

  function inner(x) {

    if (cache[x] !== undefined) {
      console.log(`fetching from cache : ${x}`);
      return cache[x];
    } else {
      console.log(`calculating ... for ${x}`);
      let result = fn(x);
      cache[x] = result;
      return result;
    }
  }
  return inner;
})

// fibonacii generator function 
const fibo = memory(n => {
  if (n === 1 || n === 2) {
    return 1
  } else return fibo(n - 1) + fibo(n - 2);
})





// checking

console.log(fibo(5));
console.dir(fibo);
console.log(fibo(3));
//console.log(fibo(2));