Say `arr`

is `[1,2,3]`

. And say `n`

is 3

If n is 0, then it returns 1, regardless: the `if`

block is run. This is the base, start here. So `multiply([1,2,3], 0)`

is 1.

So if n is 1, then it is greater than 0. So the else block is run.

It is `multiply(arr, n - 1) * arr[n - 1];`

. So that is `multiply([1,2,3], 0) * 1;`

. You know that if `n`

is 0, the value is 1, so that is 1 * 1, so it’s 1.

So if n is 2, then it is greater than 0. So the else block is run.

It is `multiply(arr, n - 1) * arr[n - 1];`

. So that is `multiply([1,2,3], 1) * 2;`

. You know that if `n`

is 1, the value is 1, so that is 1 * 2, so it’s 2.

So if n is 3, then it is greater than 0. So the else block is run.

It is `multiply(arr, n - 1) * arr[n - 1];`

. So that is `multiply([1,2,3], 2) * 3;`

. You know that if `n`

is 2, the value is 2, so that is 2 * 3, so it’s 6.

Now you’re finished. The answer is 6.