# 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.