Generating the Fibonacci Sequence Iteratively

An iterative solution to generate the Fibonacci Sequence


Some months ago I wrote about how to generate any nth number of the Fibonacci Sequence using recursion. As I was reading through my old posts, I felt like I could complete that post with an iterative solution.

Moreover, the iterative solution is far quicker and more efficient than using recursion. As in the other post, I will use Python.

The solution is as easy as this. If you're wondering why I used nex instead of next, that's simple because next is already defined by Python (you can use it to return the next item in an iterator).

def fibonacci(n):
    prev, nex = 0, 1

    for _ in range(n):
        prev, nex = nex, prev + nex
        print(prev)

Calling the fibonacci function will print out n values of the sequence. In order to make this simple function even better, we could return the nth value as for the recursive example.

def fibonacci(n):
    prev, nex = 0, 1

    for _ in range(n):
        prev, nex = nex, prev + nex
    return prev

If we now call fibonacci(n) we'll get the nth element of the Fibonacci Sequence (starting from index 1).

In Python is quite easy to create small and good looking algorithms as you can see. For example, JavaScript doesn't allow to swap variables like this, however, you can still do that in another simple manner as described in my previous post.