Contents
Nth Fibonacci Number
To find the Nth Fibonacci number, we can use Recursion technique or a For Loop.
In this tutorial, we will write Python programs that cover both of the above said techniques to find out Nth Fibonacci number.
1. Nth Fibonacci Number using Recursion
In the following program, we write a function fibonacci() that can take n as argument, and return the nth Fibonacci number. This fibonacci() is a recursion function.
Algorithm for fibonacci(n)
We have to consider that the first and second elements of a Fibonacci series are 0 and 1 respectively. And any element after these two elements is the result of adding the previous two numbers.
Now the algorithm is
- If n is less than zero, print message “Invalid n”.
- If n is 1, return 0.
- If n is 2, return 1.
- If n is greater than 2, return the sum of fibonacci(n-1) and fibonacci(n-2).
Input
n
, where n > 0
Python Program
def fibonacci(n) :
if n < 0:
print('Invalid n')
return
elif n == 1:
return 0
elif n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
n = int(input('Enter n : '))
result = fibonacci(n)
print(f'{n}-Fibonacci Number : {result}')
Output
Enter n : 10
10-Fibonacci Number : 34
2. Nth Fibonacci Number using For Loop
In the following program, we write a function fibonacci() that can take n as argument, and return the nth Fibonacci number.
Algorithm for fibonacci(n)
We have to consider that the first and second elements of a Fibonacci series are 0 and 1 respectively. And any element after these two elements is the result of adding the previous two numbers, and we shall use For Loop in this example.
Now the algorithm is
- If n is less than zero, print message “Invalid n”.
- If n is 1, return 0.
- If n is 2, return 1.
- If n is greater than 2, use For Loop in the range of (2, n) to compute fibonacci series, and returning the lat element.
Input
n
, where n > 0
Python Program
def fibonacci(n) :
if n < 0:
print('Invalid n')
return
elif n == 1:
return 0
elif n == 2:
return 1
else:
a = 0 #previous element
b = 1 #previous to previous element
c = 0 #current element
for i in range(2, n):
c = a + b
a = b
b = c
return c
n = int(input('Enter n : '))
result = fibonacci(n)
print(f'{n}-Fibonacci Number : {result}')
Output
Enter n : 10
10-Fibonacci Number : 34
Related Tutorials
- How to Get Number of Elements in Pandas DataFrame?
- Numpy sqrt() – Find Square Root of Numbers
- Python – Check if Number is Armstrong
- Reverse a Number in Python
- Python – Factorial of a Number
- How to Get Number of Axes in Pandas DataFrame?
- Python – Sum of Two Numbers
- Python – Sum of First N Natural Numbers
- Python – Smallest of Three Numbers
- Python Program to Add Two Numbers