Fill in the line of the following Python code for calculating the factorial of a number.
def fact(num): if num == 0: return 1 else: return _____________________
num*fact(num-1)
(num-1)*(num-2)
num*(num-1)
fact(num)*fact(num-1)
What will be the output of the following Python code?
def test(i,j): if(i==0): return j else: return test(i-1,i+j) print(test(4,7))
13
7
Infinite loop
17
l=[] def convert(b): if(b==0): return l dig=b%2 l.append(dig) convert(b//2) convert(6) l.reverse() for i in l: print(i,end="")
011
110
3
A recursive function that has two base cases
A function where the recursive functions leads to an infinite loop
A recursive function where the function doesn’t return anything and just prints the values
A function where the recursive call is the last thing executed by the function
Observe the following Python code?
def a(n): if n == 0: return 0 else: return n*a(n - 1) def b(n, tot): if n == 0: return tot else: return b(n-2, tot-2)
Both a() and b() aren’t tail recursive
Both a() and b() are tail recursive
b() is tail recursive but a() isn’t
a() is tail recursive but b() isn’t
Every recursive function must have a base case
Infinite recursion can occur if the base case isn’t properly mentioned
A recursive function makes the code easier to understand
Every recursive function must have a return value
def fun(n): if (n > 100): return n - 5 return fun(fun(n+11)); print(fun(45))
50
100
74
Program gets into an infinite loop
Program runs once
Program runs n number of times where n is the argument given to the function
An exception is thrown
Making the code look clean
A complex task can be broken into sub-problems
Recursive calls take up less memory
Sequence generation is easier than a nested iteration
It’s easier to code some real-world problems using recursion than non-recursive equivalent
Recursive functions are easy to debug
Recursive calls take up a lot of memory
Programs using recursion take longer time than their non-recursive equivalent
def a(n): if n == 0: return 0 elif n == 1: return 1 else: return a(n-1)+a(n-2) for i in range(0,4): print(a(i),end=" ")
0 1 2 3
0 1 1 2 3
0 1 1 2
Subroutines
Files
Pseudo code
Modules
Function
Definition
Parameters
Arguments
Curly braces
Parentheses
Square brackets
indentations
Impure functions
Partial Functions
Dynamic Functions
Pure functions
impure function
What is the output of below program ?
def maximum(x,y): if x>y: return x elif x==y: return "The number are equal" else: return y print(maximum(2,3))
2
The number are equal
None of These