Mental Model
Recursion solves a problem by calling itself with smaller parts until it reaches a simple case it can answer directly.
Analogy: Imagine stacking boxes inside bigger boxes. You keep opening the next smaller box until you find the smallest box that you can open without any more boxes inside.
Call stack: main -> func(3) -> func(2) -> func(1) -> base case reached Each arrow means a function calling itself with a smaller number.
