Lesson 5

The topic of our lesson today is **Simple Recursion in Practice**. As you may already know, *recursion* is a fundamental concept in computer science and an essential skill to master for any serious programmer. Using recursion can simplify the code and make it easier to understand, although it can sometimes be hard to grasp. Basically, it is a method where the solution to a problem is based on solving smaller instances of the same problem.

Let's quickly examine a factorial calculation, probably the most common and simple example of recursion. In math, the factorial of a number `n`

is the product of all positive integers less than or equal to `n`

. It sounds complicated, but if we think about it, the factorial of `n`

can be calculated as the multiplication of the number `n`

and the factorial of `n - 1`

. So, in Python, we can write a recursive function that calculates the factorial of a number. It will multiply the number by the factorial of `number - 1`

until it reaches 0. At this point, the function returns 1 (since the factorial of 0 is 1 by definition), which ends the recursion.

Here is how the solution will look like:

Python`1def factorial(n): 2 # Base case: factorial of 0 is 1 3 if n == 0: 4 return 1 5 # Recursive case: multiply n by factorial of n-1 6 else: 7 return n * factorial(n-1) 8 9# Example usage 10print(factorial(5)) # Outputs 120`

Understanding recursion is crucial, as it's applied in many areas of computer science like algorithms, data structures, etc. This lesson was just a warm-up. Now, it's time for practice to solidify your understanding and further build upon this knowledge. Remember, practice is the key!