Python - Recursive Function
fact(4)=>4*fact(3)=>4*6=>24
All this process done in background to find factorial using recursive. You can write this program without using recursive function. Now we will see how to write this program without using recursive function.
Recursive function means the function call themselves within the function body until a certain condition is matched then this function is recursive function.
For example:-
def fact(n):
if n==0 or n==1:
return 1
else:
return n*fact(n-1)
print(fact(8))
Output:-
40320
This is the example of recursive function. In this program we create a function named as fact and we call this function within the same function.
How this program works?
We give the value of n is 8 so n=8. In the first if condition, 8 is not equal to 0 and 1 so it goes to the else part in the else part the sentence is return n*fact(n-1) that means 8*fact(7) now here value of n become 7 to find fact(7) again same procedure repeat up to fact(1). Because fact(1)=1 we give this condition. Then
fact(2) => 2*fact(1) => 2*1=> 2
fact(3)=> 3*fact(2) => 3*2=> 6
fact(5)=>5*fact(4)=>5*24=>120
fact(6)=>6*fact(6)=>6*120=>720
fact(7)=>7*fact(6)=>7*720=>5040
fact(8)=>8*fact(7)=>8*5040=>40320
All this process done in background to find factorial using recursive. You can write this program without using recursive function. Now we will see how to write this program without using recursive function.
num = 8
fact = 1
if num == 0 or num == 1:
print("1")
else:
for i in range(1,num+1):
fact = fact*i
print(fact)
Output:
40320
You can see the difference of both programs. Recursive function reduce unnecessary functions. Recursive function reduce the size of program. In recursive function you must have to write if condition because they call themselves until certain condition is matched.
We will see another example of recursive function.
1) Fibonacci series
Ans:-
def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1)+fib(n-2)
for i in range(10):
print(fib(i))
Output:
0
1
1
2
3
5
8
13
21
34
There are some disadvantages of recursive function. Sometimes logic behind the recursive function is hard. Recursive function takes lot of memory and time to run. Recursive function are hard to debug.
In the next section we will see Built in function in python.
Prev Topic Next Topic
Comments
Post a Comment