Hey @jaccobtw

Let’s step through what’s happening.

The Fibonacci series is a sequence of numbers where each number is the sum of the two numbers previous. So, the sequence written out is `1,1,2,3,5,8,13...`

`fibonacci(1)`

returns `1`

, because `n == 1`

evaluates to `True`

and so we return `1`

.

`fibonacci(2)`

doesn’t result in either of your `if`

statements evaluating to true, so we return `fibonacci(1) + fibonacci(0)`

. As we already know, `fibonacci(1) = 1`

, and `fibonacci(0) = 0`

. `1 + 0 = 1`

.

`fibonacci(4)`

returns `fibonacci(3) + fibonacci(2)`

. `fibonacci(3)`

returns `fibonacci(2) + fibonacci(1)`

, so `fibonacci(4)`

is the same as `(fibonacci(2) + fibonacci(1)) + fibonacci(2)`

. We already know that `fibonacci(2) = fibonacci(1) + fibonacci(0)`

.

So, `fibonacci(4)`

is the same as `fibonacci(1) + fibonacci(0) + fibonacci(1) + fibonacci(1) + fibonacci(0)`

, which evaluates to `1 + 0 + 1 + 1 + 0 = 3`

.

That’s probably horrendously unclear, but such is the joy of recursion.