Lesson 7
Objects and Dictionaries
Chapter 6: Recursion
Factorials
Hope you have managed to implement the recursive version of the factorial
function! Here is my implementation. If you tried defining it mathematically earlier, this is just a directly implementation of the definition.
1 2 3 4 5 |
|
And in case this is useful, here is a text-based visualisation for the function call factorial(4)
:
- factorial(4)
- 4 * factorial(3)
- 4 * (3 * factorial(2))
- 4 * (3 * (2 * factorial(1)))
- 4 * (3 * (2 * 1))
- 4 * (3 * 2)
- 4 * (6)
- 24
Like I mentioned earlier, it helps to think about recursion in a more abstract or high-level manner, rather than being bogged down by all the details.
For example, you can think of the problem as follows: “factorial(n)
will multiply n
by factorial(n-1)
, and will stop once we reach factorial(1)
. Then 1
will be returned to whoever called it, and everything will multiply accordingly.” All you need to do is to trust that your recursion will work correctly!