Lesson 13 / 38
Recursion
Solve problems with recursive functions using a base case, and understand how the call stack grows.
Russian dolls
Recursion is like opening a matryoshka doll: each doll contains a smaller version of itself, until you hit the smallest one that doesn't open further — the base case.
Factorial
Every recursive function needs a base case (stops recursion) and a recursive case (calls itself with a smaller input).
int factorial(int n) {
if (n <= 1) return 1; // base case
return n * factorial(n - 1); // recursive case
}
// factorial(4) -> 4*3*2*1 = 24
Output:
24
Watch the stack
Each call adds a frame to the call stack. No base case (or a wrong one) causes infinite recursion and a stack overflow crash.