Solution Review: Corresponding Fibonacci Number

This review provides a detailed analysis of the ways to find the corresponding element at a given index in the Fibonacci series.

Solution #1: Iterative Method

Press + to interact
def fibonacci(testVariable):
fn0 = 0
fn1 = 1
for i in range(0, testVariable):
temp = fn0 + fn1
# Setting variables for next iteration
fn0 = fn1
fn1 = temp
return fn0
# Driver Code
testVariable = 7
print(fibonacci(testVariable))

Explanation

In the iterative method, we keep track of the two previous elements using the variables fn0 and fn1. Initially, the values of the two variables are:

fn0 = 0
fn1 = 1

However, in each iteration, the values are updated in the following way:

Solution #2: Recursive Method

Press + to interact
def fibonacci(testVariable):
# Base Case
if testVariable <= 1 :
return testVariable
# Recursive Case
return(fibonacci(testVariable - 1) + fibonacci(testVariable - 2))
# Driver Code
testVariable = 7
print(fibonacci(testVariable))

Explanation:

In the code above, the function fibonacci() is a recursive function as it calls itself in the function body.

The base case of the function (line number 3) deals with the two initial values, i.e, for index 00 the value is 00 and for the index, 11 the value is 11:

    if testVariable <= 1 :
        return testVariable

However, for the recursive case, the parent function calls two instances of itself recursively with n1n-1 and n2n-2. The input arguments correspond to the equation for finding a general term in the Fibonacci sequence.

FFn =F=Fn-2+F+Fn-1

Let’s look at the code flow:


In the next lesson, we have a short quiz for you to test your concepts.