Tell us what’s happening:
I was wondering what the code is doing here: multiply(arr, n - 1 ) * arr[n - 1];
function multiply(arr, n) {
if (n <= 0) {
return 1;
} else {
return multiply(arr, n - 1) * arr[n - 1];
}
}
Your browser information:
User Agent is: Mozilla/5.0 (X11; CrOS x86_64 13020.87.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.119 Safari/537.36
.
Challenge: Replace Loops using Recursion
Link to the challenge:
Learn to code. Build projects. Earn certifications.Since 2015, 40,000 graduates have gotten jobs at tech companies including Google, Apple, Amazon, and Microsoft.
The function is calling itself (the recursive step) until it reaches the base case (return 1 if n<= 0) and multiplying the results of all the function calls together.
An Example: If n = 5 and arr = [2,3,4,5,6] then the return statement would do the following
return multiply(arr, n - 1) * arr[n - 1]
return arr[5-1] * arr[4-1] * arr[3-1] * arr[2-1] *arr[1-1] * 1)
return 6*5*4*3*2*1
for addition the return statement would be something like
return add(arr, n - 1) + arr[n - 1]
return arr[5-1] + arr[4-1] + arr[3-1] + arr[2-1] + arr[1-1] + 0
return 6+5+4+3+2+0
notice the base case is different for the addition example, we dont want to add an extra 1
you can also look at Using recursive!
1 Like