In the previous section, you learned how to find a certain number in the Fibonacci sequence using recursion. However, this solution takes a huge amount of time because, for each number calculated, it needs to calculate the previous numbers more than once. Using iterations rather than recursion is much better in this case since the calculation time will be much less.

# iteration is much quicker than recursion for this problem
# finds the nth term in the Fibonacci sequence using iteration
def iterative_fib(n):
if n <= 0:
return None # base case; out of bounds
current = 0
next_term = 1
for i in range(n - 1): # this is equivalent to for i in range(1, n)
current, next_term = next_term, current + next_term
# this is just a slightly rewritten fib sequence;
# instead of looking at the past 2 cases, it looks at the
# current and next terms to determine the next next term
return current # will be 0 if n is 1, 1 if n is 2, etc...
print(iterative_fib(5))

This is just one of the numerous examples of when iteration is better than recursion. Next time you code, you should keep in mind that recursion isn't always the right answer. Sometimes, writing a solution iteratively is much better.