# Stepping Through Recursive Fibonacci Function

The Fibonacci Sequence is such that each number is the sum of the previous two numbers.

Fibonacci Sequence: 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 . . .

This is a great use case for recursion.

We will build our Fibonacci algorithm using recursion. We will define a function that takes in a number called position as a parameter.This position will indicate which number from the Fibonacci sequence we want returned to us.

For example:
fibonacci(4) // returns 3
fibonacci(9) // returns 34

This algorithm does not require a lot of code, so we will not over complicate it.

Let's define the function `fibonacci` that takes in a number `position` .

``````function fibonacci(position){

}
``````

Next, let's go-ahead to define our base case. So, we can ask ourselves, what is the situation that we immediately know one number is found at the given position in our Fibonacci sequence? There are two situations:

1. Since the first two numbers in the Fibonacci sequence are always 1 and 1, if the position equals 1 it should return 1 or if it equals 2 it should return 1 still
``````function fibonacci(position){
if(position < 3) return 1;
}
``````

Now we write our recursive code:

``````function fibonacci(position){
if(position < 3) return 1;
else return fibonacci(position - 1) + fibonacci(position - 2)
}
``````

We know that the number in the position is a result of the sum of the two previous numbers before it `position -1` and `position - 2`. We return the result of adding our Fibonacci function using these two cases as passed in parameters of each. The function will call itself until the base case is attained then it will stop.

To see a visualization of the breakdown of how each function is called, here's a link to a video that explains it.   