Replace Loops using Recursion
Hints
Hint 1:
When n <= 0
sum(arr, n)
returns 0
.
Hint 2:
When n
is larger than 0 sum(arr, n)
returns sum(arr, n - 1) + arr[n - 1]
Solutions:
(Click to reveal)
function sum(arr, n) {
if(n <= 0) {
return 0;
} else {
return sum(arr, n - 1) + arr[n - 1];
}
}
Code Explanation
The if
statement checks to see if sum
is evaluating the base case, n <= 0
, or not. If it is, then sum
returns the answer, 0
- the sum of elements from 0 to 0 inclusive. Otherwise, it recurses by evaluating a simpler function call, sum(arr, n - 1)
. Once that returns it adds a single array element, arr[n - 1]
, to it and returns that sum.