Recursion
A recursive algorithm calls itself repeatedly in order to solve the problem until a certain condition is fulfilled. Each recursive call itself spins off other recursive calls. A recursive function can be in an infinite loop; therefore, it is required that each recursive function adheres to certain properties. At the core of a recursive function are two types of cases:
- Base cases: These tell the recursion when to terminate, meaning the recursion will be stopped once the base condition is met
- Recursive cases: The function calls itself recursively, and we progress toward achieving the base criteria
A simple problem that naturally lends itself to a recursive solution is calculating factorials. The recursive factorial algorithm defines two cases: the base case when n is zero (the terminating condition) and the recursive case when n is greater than zero (the call of the function itself). A typical implementation is as follows:
def factorial(n):
...