Open In App

Fibonacci Series Program In Python Using Iterative Method

Last Updated : 14 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Fibonacci series is a series where each number is the sum of its two previous numbers. In this article, we are going to generate Fibonacci series in Python using Iterative methods. We will be covering both the loops i.e. for loop and while loop.

In this article, we will be covering all the concepts related to the topic with clear and concise examples with their respective explanations.

To get the nth element of the Fibonacci Series:

F(n) = F(n-1) + F(n-2)

Examples

Input : n = 10
Output : Fibonacci Series: 0 1 1 2 3 5 8 13 21 34

Fibonacci Series Program Using Iterative Method

Below are some of the ways by which we can find fibonacci series using iterative method in Python:

  1. Using for loop
  2. Using While loop

Fibonacci Series Program Using for loop

Case 1: Using List to Store Elements

In this case, we are going to store elements of our Fibonacci series inside a Python list. We are also using negative indexing of the list to get the last and second last element.

Python3




#defining function to return list of fibonacci elements
def fibonacci(n):
     
    l = [0,1]
    for i in range(2,n):
        l.append(l[-1]+l[-2])
    return l
 
#Main function
if __name__ == "__main__":
   #defining the total number of elements
    n = 10
     
    #calling of function
    fibo = fibonacci(n)
     
    #displaying the function 
    print("Fibonacci Series: ",*fibo)


Output

Fibonacci Series:  0 1 1 2 3 5 8 13 21 34

Time Complexity: O(n), where n is the number of elements.
Space Complexity: O(n), where n is the number of elements.

Case 2: Using Two Variables Approach

In this case, we are going to implement two variables approach. In this approach, we are going to store first two elements of Fibonacci series (lets say a, b) and then add those elements and yield to the main function. After this we will swap ‘a’ with ‘b’ and ‘b’ with ‘sum’.

Note: Unlike the previous approach it takes less space in memory. Since it do not store the list elements that we do in the previous approach.

Python3




#Creating a Fibonacci function
def fibonacci(n):
   
      #defining first two variables
    a,b = 0,1
    yield 0
    yield 1
    for i in range(2, n):
        yield a+b
        #swaping a with b and b with sum
        a,b = b, a+b
 
if __name__ == "__main__":
    n = 10
    # Function Calling
    gen = fibonacci(n)
     
    #displaying the series
    print("Fibonacci Series: ",end="")
    for i in range(n):
        print(next(gen), end=" ")


Output

Fibonacci Series: 0 1 1 2 3 5 8 13 21 34 

Time Complexity: O(n), where n is the number of elements.
Space Complexity: O(1)

Fibonacci Series Program Using while loop

Case 1: Using List to Store Elements

In this case, just like we did it in for loop part, we will be using list to store the Fibonacci series element. We have to define a list with first two elements of Fibonacci Series.

Python3




#defining function to return list of fibonacci elements
def fibonacci(n):
     
    i = 0
    l = [0,1]
    while i < n-2:
        l.append(l[-1]+l[-2])
        i+=1
    return l
 
#Main function
if __name__ == "__main__":
   #defining the total number of elements
    n = 10
     
    #calling of function
    fibo = fibonacci(n)
     
    #displaying the function 
    print("Fibonacci Series: ",*fibo)


Output

Fibonacci Series:  0 1 1 2 3 5 8 13 21 34

Time Complexity: O(n), where n is the number of elements.
Space Complexity: O(n), where n is the number of elements.

Case 2: Using Two Variables Approach

In this approach, we will use the same method that we have used it in the for loop part. We will just define first two elements of the series in the variable a and b. Then we will pass the first two elements to the main function and then add theses two variables and pass to the main function. After this we will swap ‘a’ with ‘b’ and ‘b’ with ‘sum’, likewise we have done in the previous approach.

Python3




#Creating a Fibonacci function
def fibonacci(n):
    #defining first two variables
    a,b,i = 0,1,0
    yield 0
    yield 1
    while i < n-2:
        yield a+b
        a,b = b, a+b
 
if __name__ == "__main__":
    n = 10
    # Function Calling
    gen = fibonacci(n)
     
    #displaying the series
    print("Fibonacci Series: ",end="")    
    for i in range(n):
        print(next(gen), end=" ")


Output

Fibonacci Series: 0 1 1 2 3 5 8 13 21 34 

Time Complexity: O(n), where n is the number of elements.
Space Complexity: O(1)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads