I’m working on some problems to help me better understand recursion. First, I will do a function to calculate n factorial (n!). This is how Wikipedia explains factorial:
In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. For example,
https://en.wikipedia.org/wiki/Factorial
The example below is a good case for using a recursive solution:
function factorial(n) {
if (n === 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
The trouble I had with recursion was in understanding where it is stored the product of the multiplication on line 5. It turned out that it was being stored in a stack. As I now understand it, I can think of the stack as an array. Below I’ve added a stack array to illustrate this.
const stack=[];
function countDown(int) {
stack.push(int);
// Base case
if (int === 1) {
return 1;
} else {
// recursive case
return int * countDown(int-1);
}
}
const output = countDown(6);
console.log('factorial is ', output);
console.log(stack);
Next I did a recursive function to calculate multiples of a number. The function takes in base and i (the number of multiples to calculate). The results are stored in the multiples array.
var multiples = [];
function multiplesOf(base, i) {
// Base case
if (i === 0) {
// Write the array multiples to the console
return multiples;
}
// Recursive case
else {
multiples[i - 1] = base * i;
// Add a recursive function call
return multiplesOf(base,i-1);
}
}
const output = multiplesOf(5, 3);
console.log(output);

