Hello,

Just a quick question:

Why, in this recursion, would the final return of ‘1’ (after ‘num’ equates to ‘0’) not actually return the number 1?

Regards

```
function factorialize(num) {
if (num < 0)
return -1;
else if (num == 0)
return 1;
else {
return (num * factorialize(num - 1));
}
}
```

If num is 0 then this function will return 1 as it will execute the 2nd else only.

If num is 1 then the function will execute the last else and return

1 * factoralize(0)

That is it will return 1 (as 1 * 1 is 1)

If the num is 2 then the function will return

2* factoralize(1)

So it will return 2

Etc etc

1 Like

Ah, yes!

So rather than simply returning ‘1’ it is returning ‘num’ * 1.

Awesome. I totally get it now

system
Closed
4
This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.