Open In App

Understanding Recursive Functions with Python

Improve
Improve
Like Article
Like
Save
Share
Report

Recursion is characterized as the process of describing something in terms of itself; in other words, it is the process of naming the function by itself. Recursion is the mechanism of a function calling itself directly or implicitly, and the resulting function is known as a Recursive function.

Advantages:

  • Code reusability
  • Easily understandable
  • Time complexity sometimes low
  • Less number of code

Disadvantages:

  • Causes overflow if condition exceeds
  • More memory
  • It is difficult to understand
  • It is difficult to debug
  • Terminating conditions in Recursion is a must

Syntax:

def function_name(): 

             ……………..

             |(recursive call)

             ………………….

   function_name() 

Recursion calls the function which is already called and will call many times till the condition will become false. After that, it will return the value

Applications:

  • Tower of Hanoi
  • Stack implementation
  • Fibonacci implementation
  • Round Robin problem in Operating System.

Apart from the above applications below are some examples that depict how to use recursive functions in a program.

Example 1:

Python program to print Fibonacci series up to given terms.

Fibonacci:

Number=sum of two previous numbers

0,1

0+1=1

0+1=2

2+1=3

3+2=5

5+3=8

So the Fibonacci numbers are 0,1,1,2,3,5,8…….

In this program, the values are defined in till_range variables and then we are passing that variable into an argument, then calling the recursive function.

recursive_function(a-1) + recursive_function(a-2)

Implementation:

Python3




# Recursive function
def recursive_function(a):
   
    # Check number
    if a <= 1:
        return a
    else:
         
        # Get next term
        return(recursive_function(a-1) + recursive_function(a-2))
 
     
# Display first fibonacci number
print("\nFibonacci series upto 1 number:")
for i in range(1):
    print(recursive_function(i),
          end=" ")   
     
# Display first 5 fibonacci numbers
print("\nFibonacci series upto 5 numbers:")
for i in range(5):
    print(recursive_function(i),
          end=" ")
     
# Display first 10 fibonacci numbers
print("\nFibonacci series upto 10 numbers:")
for i in range(10):
    print(recursive_function(i),
          end=" ")   


Output: 

Fibonacci series upto 1 number:
0 
Fibonacci series upto 5 numbers:
0 1 1 2 3 
Fibonacci series upto 10 numbers:
0 1 1 2 3 5 8 13 21 34 

Example 2: 

Python program to find factorial of a number.

Factorial

Number=Number*(Number-1)*(Number-2)…*(Number-(Number+1))

Factorial of 3= 3*2*1

Factorial of 5= 5*4*3*2*1

Factorial of 7 = 7*6*5*4*3*2*1

In this python program, we are going to return the factorial of an integer. We are passing the variable n value to an argument, then we are calling the function.

a* recursion_factorial(a-1)

Implementation:

Python3




# recursive function
def recursion_factorial(a):
   
    # check number
    if a == 1:
        return 1
    else:
         
        # multiply with next number
        return (a * recursion_factorial(a-1))
 
 
# factorial of 7
n = 7
print("Factorial of", n, "is", recursion_factorial(n))
 
# factorial of 2
n = 2
print("Factorial of", n, "is", recursion_factorial(n))
 
# factorial of 4
n = 4
print("Factorial of", n, "is", recursion_factorial(n))
 
# factorial of 9
n = 9
print("Factorial of", n, "is", recursion_factorial(n))
 
# factorial of 10
n = 10
print("Factorial of", n, "is", recursion_factorial(n))


Output:

Factorial of 7 is 5040
Factorial of 2 is 2
Factorial of 4 is 24
Factorial of 9 is 362880
Factorial of 10 is 3628800


Last Updated : 15 Jul, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads