Algorithm Design: Recursion
Recursion allows the solution is a problem by composing solutions to smaller-sized instances of the same problem.
Recursion is similar to “divide and conquer” in that the problem is divided into sub-problems that are tackled individually. The difference is that recursion divides the problem into smaller-sized instances of the same problem.