A Sierpinski gasket is three half-sized Sierpinski gaskets arranged in a triangle.
| n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| F(n) | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 |
⎧ 1 if n≤2
F(n) = ⎨
⎩ F(n-1) + F(n-2) otherwise
fib(5)
= fib(4) + fib(3)
= [ fib(3) + fib(2) ] + [ fib(2) + fib(1) ]
= [ fib(2) + fib(1) ] + 1 + 1 + 1
= 1 + 1 + 1 + 1 + 1
= 5

int fib(int which) {
if (which <= 2) // base case?
return 1;
return fib(which - 1) + fib(which - 2);
}
At any point, there can be several calls to fib active.
The computer keeps track of them.

int factorial(int n) {
if (n <= 1)
return 1;
return n * factorial(n-1);
}
n ≤ 1 : return 1
n > 1 : return n*factorial(n-1)
n at each
successive call to factorial the recursion will stop when n becomes 1.