Recursion is the process of defining something in terms of itself. A recursive function is a function defined in terms of itself via self-referential expressions. This means that the function will go on to call itself and repeat its actions whereas some condition is met to return a result.
In other words we can say that it is a programming technique in which a function calls itself from its own body definition. It is similar to loop because it repeats the same code a number of times.
Advantages of Recursion
Recursive functions make the code look clean and stylish.
A complex task can be broken down into simpler sub-problems using recursion.
Sequence generation is easier with recursion than using some nested iteration.
Disadvantages of Recursion
Occasionally the logic behind recursion is hard to follow through.
Recursive calls are costly because they are used a lot of memory and time.
Recursive functions are not easy to debug.
Example:
Write a program to input a number and calculate its factorial.
def fact(x):
if x == 1:
return 1
else:
return (x * fact(x-1))
num=int(input("Enter the Number: "))
print("The factorial of", num, "is", fact(num))
Output:
Enter the Number: 3
The factorial of 3 is 6
Example 2:
Write a program to input a number and print its table up to 10 terms.
Program:
def table(num):
for i in range(1, 11):
print(num, 'x', i, '=', num*i)
return
n = int(input("Enter number: "))
table(n)
Output:
Enter number: 5
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
Example 3:
Python program calculates the sum of the first N Natural numbers using recursive function calls.
def sum(n):
if n==1:
return 1
else:
return (n + sum(n-1))
num=int(input("Enter a number : "))
s=sum(num)
print("The sum of natural numbers is ", s)
Output:
Enter a number : 4
The sum of natural numbers is 10
Comments