Recursion in Python: Advantages of Using Recursion
Recursion in Python: Advantages of Using Recursion
Recursion in Python: Advantages of Using Recursion
def recursive_fibonacci(n):
if n <= 1:
return n
else:
return(recursive_fibonacci(n-1) + recursive_fibonacci(n-2))
n_terms = 10
# check if the number of terms is valid
if n_terms <= 0:
print("Invalid input ! Please input a positive value")
else:
print("Fibonacci series:")
for i in range(n_terms):
print(recursive_fibonacci(i))
Example 2:
The factorial of 6 is denoted as 6! = 1*2*3*4*5*6 = 720.
def recursive_factorial(n):
if n == 1:
return n
else:
return n * recursive_factorial(n-1)
# user input
num = 6
# check if the input is valid or not
if num < 0:
print("Invalid input ! Please enter a positive number.")
elif num == 0:
print("Factorial of number 0 is 1")
else:
print("Factorial of number", num, "=", recursive_factorial(num))
Tail-Recursion
A unique type of recursion where the last procedure of a function is a recursive call.
The recursion may be automated away by performing the request in the current stack
frame and returning the output instead of generating a new stack frame. The tail-
recursion may be optimized by the compiler which makes it better than non-tail
recursive functions.
Is it possible to optimize a program by making use of a tail-recursive function
instead of non-tail recursive function?
Considering the function given below in order to calculate the factorial of n, we can
observe that the function looks like a tail-recursive at first but it is a non-tail-recursive
function. If we observe closely, we can see that the value returned by Recur_facto(n-1)
is used in Recur_facto(n), so the call to Recur_facto(n-1) is not the last thing done by
Recur_facto(n).
7. Write a Python program to calculate the sum of the positive integers of n+(n-2)+(n-4)...
(until n-x =< 0).
Test Data:
sum_series(6) -> 12
sum_series(10) -> 30