**fib(x-1)**

and

**fib(x-2)**

============

in your first two cases (0 and 1), the function will return a 1 value because of this statement:

```
if x == 0 or x == 1:
```

For your next case (2), the fib function will be invoked twice with a value of 1 and 0 (see above), which both return 1 values, which are added and the sum (2) is returned.

For your next case (3), the fib function is invoked twice with the value of 2 and 1. We see what happens when 2 is passed and when 1 is passed, so we add 2 and 1 and return 3.

try the next case (4) for yourself.