Skip to content

Instantly share code, notes, and snippets.

@alexkubica
Last active October 7, 2020 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexkubica/67e22221c07c4fea805e6ca09f6d5364 to your computer and use it in GitHub Desktop.
Save alexkubica/67e22221c07c4fea805e6ca09f6d5364 to your computer and use it in GitHub Desktop.

SPOILER ALERT

Kata issue: https://www.codewars.com/kata/5d653190d94b3b0021ec8f2b/discuss#5f7dc7dd51f6bc00336ea781

I get max call stack for this solution:

function productSum(a, m) {
  return calc(a, m, 0, 0, 1) % (1e9 + 7);
}

function calc(arr, k, i, subArrLen, subMul) {
  if (subArrLen === k) {
    return subMul;
  }
  
  if (i >= arr.length) {
    return 0;
  }
  
  return calc(arr, k, i + 1, subArrLen + 1, subMul * arr[i]) +
    calc(arr, k, i + 1, subArrLen, subMul);
}

Output:

 Random tests
 Test
RangeError: Maximum call stack size exceeded
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
    at calc
Completed in 64ms
Completed in 64ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment