COMP PROG
COMP PROG
Consider the following recursive function fun(x, y). What is the value 4+3=7
of fun(4, 3) 7+3=10
int fun(int x, int y) 10+2=12
{ 12+1=13
if (x == 0)
return y;
return fun(x - 1, x + y);
}
Line 5
5+0
What will be the output of the following C++ code?
#include <iostream>
using namespace std;
int main()
{
cout << fun(5);
return 0;
}
int fun(int x, int y) {
return (x+y);
}
#include <iostream>
using namespace std;
void greet()
{
cout<<"Hi Jayar";
}
int main()
{
greet();
return 0;
}
int sum(int n) { 1. sum(8):
if (n==0) Since n != 0, the function calls sum(7) and
return n; returns 8 + sum(7).
else 2. sum(7):
return n + sum(n-1); Since n != 0, the function calls sum(6) and
} returns 7 + sum(6).
What will be the output of sum(8). 3. sum(6):
Since n != 0, the function calls sum(5) and
returns 6 + sum(5).
4. sum(5):
Since n != 0, the function calls sum(4) and
returns 5 + sum(4).
5. sum(4):
Since n != 0, the function calls sum(3) and
returns 4 + sum(3).
6. sum(3):
Since n != 0, the function calls sum(2) and
returns 3 + sum(2).
7. sum(2):
Since n != 0, the function calls sum(1) and
returns 2 + sum(1).
8. sum(1):
Since n != 0, the function calls sum(0) and
returns 1 + sum(0).
9. sum(0):
The base case is reached, so the function
returns 0.
Now, unwinding the recursion:
• sum(1) returns 1 + 0 = 1
• sum(2) returns 2 + 1 = 3
• sum(3) returns 3 + 3 = 6
• sum(4) returns 4 + 6 = 10
• sum(5) returns 5 + 10 = 15
• sum(6) returns 6 + 15 = 21
• sum(7) returns 7 + 21 = 28
• sum(8) returns 8 + 28 = 36
What does the following recursive code do? Prints the numbers from 1 to 10
void my_recursive_function(int n)
{ my_recursive_function(10) calls
if(n == 0) my_recursive_function(9).
return; my_recursive_function(9) calls
my_recursive_function(n-1); my_recursive_function(8).
cout<<n; my_recursive_function(8) calls
} my_recursive_function(7).
int main() my_recursive_function(7) calls
{ my_recursive_function(6).
my_recursive_function(10); my_recursive_function(6) calls
return 0; my_recursive_function(5).
} my_recursive_function(5) calls
my_recursive_function(4).
my_recursive_function(4) calls
my_recursive_function(3).
my_recursive_function(3) calls
my_recursive_function(2).
my_recursive_function(2) calls
my_recursive_function(1).
my_recursive_function(1) calls
my_recursive_function(0).
my_recursive_function(0) reaches the base
case and returns without printing anything.
int main(){
cout<<rec(4567);
}
int main()
{
cout << fun(1,2,3);
return 0;
}