DEV Community

Discussion on: FCC Algorithm Challenges / Factorialize a Number

Collapse
 
haidv profile image
HaiDV • Edited

There is a better way for your challenge by combining recursion and memorize

const cache = {};
const fac = (num) => {
  if (num ==0) return 1;
  if (cache[String(num)]) {
    return cache[String(num)]
 }

 const result =  fac(num)*fac(num-1);
 cache[String(num)] = result;

 return result;
}

Collapse
 
jpantunes profile image
JP Antunes

The line const result = fac(num)*fac(num-1); , should be const result = num * fac(num-1); otherwise it will cause a stack overflow.