Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python Program for n-th Fibonacci number

  • Difficulty Level : Easy
  • Last Updated : 24 Aug, 2021

In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation 

Fn = Fn-1 + Fn-2

With seed values 

F0 = 0 and F1 = 1.

Method 1 ( Use recursion ) :

Python




# Function for nth Fibonacci number
 
def Fibonacci(n):
    if n<= 0:
        print("Incorrect input")
    # First Fibonacci number is 0
    elif n == 1:
        return 0
    # Second Fibonacci number is 1
    elif n == 2:
        return 1
    else:
        return Fibonacci(n-1)+Fibonacci(n-2)
 
# Driver Program
 
print(Fibonacci(10))
 
# This code is contributed by Saket Modi
Output
34

Method 2 ( Use Dynamic Programming ) : 



Python




# Function for nth fibonacci number - Dynamic Programming
# Taking 1st two fibonacci numbers as 0 and 1
 
FibArray = [0, 1]
 
def fibonacci(n):
    if n<0:
        print("Incorrect input")
    elif n<= len(FibArray):
        return FibArray[n-1]
    else:
        temp_fib = fibonacci(n-1)+fibonacci(n-2)
        FibArray.append(temp_fib)
        return temp_fib
 
# Driver Program
 
print(fibonacci(9))
 
# This code is contributed by Saket Modi
Output
21

Output: 

21

Method 3 ( Use Dynamic Programming with Space Optimization) : 

Python




# Function for nth fibonacci number - Space Optimisation
# Taking 1st two fibonacci numbers as 0 and 1
 
def fibonacci(n):
    a = 0
    b = 1
    if n < 0:
        print("Incorrect input")
    elif n == 0:
        return a
    elif n == 1:
        return b
    else:
        for i in range(2, n):
            c = a + b
            a = b
            b = c
        return b
 
# Driver Program
 
print(fibonacci(9))
 
# This code is contributed by Saket Modi
Output
21

Output: 

21

Method 4 ( Using Arrays ) : 

Python3




# creating an array in the function to find the nth number in fibonacci series. [0, 1, 1, ...]
 
def fibonacci (n):
   if n<= 0:
     return "Incorrect Output"
   data = [0, 1]
   if n > 2:
        for i in range (2, n):
            data.append(data[i-1] + data[i-2])
    return data[n-1]
 
# Driver Program
 
print(fibonacci(9))
 
# This Code is contributed by Prasun Parate (prasun_parate)

Output :

144

Explanation:



[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
As we know that the Fibonacci series is the sum of the previous two terms, so if we enter 12 as the input in the program, so we should get 144 as the output. And that is what is the result. 

Method 5 ( Using Direct Formula ) : 

The formula for finding the n-th Fibonacci number is as follows:

\normalsize Fibonacci\ number\ F_n\\ (1)\ F_n=F_{n-1}+F_{n-2},\hspace{5px} F_1=1,\ F_2=1\\ (2)\ F_n={\large\frac{(1+\sqrt5)^n-(1-\sqrt5)^n}{2^n\sqrt5}}\\

Python3




# To find the n-th Fibonacci Number using formula
from math import sqrt
# import square-root method from math library
def nthFib(n):
    res = (((1+sqrt(5))**n)-((1-sqrt(5)))**n)/(2**n*sqrt(5))
    # compute the n-th fibonacci number
    print(int(res),'is',str(n)+'th fibonacci number')
    # format and print the number
     
# driver code
nthFib(12)
 
# This code is contributed by Kush Mehta
Output
144 is 12th fibonacci number

Please refer complete article on Program for Fibonacci numbers for more details!
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :