(Translated by https://www.hiragana.jp/)
Practice Questions for Recursion | Set 4 - GeeksforGeeks
Open In App

Practice Questions for Recursion | Set 4

Last Updated : 21 Aug, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Question 1 
Predict the output of the following program. 

C++
#include <iostream>
using namespace std;

void fun(int x) 
{ 
    if(x > 0) 
    { 
        fun(--x); 
        cout << x <<" "; 
        fun(--x); 
    } 
} 

int main() 
{ 
    int a = 4; 
    fun(a); 
    return 0; 
} 

// This code is contributed by SHUBHAMSINGH10
C Java Python3 C# JavaScript

Output: 
0 1 2 0 3 0 1

 

Time complexity: O(2n)

Auxiliary Space: O(n), since n extra space has been taken.
 

 
                   fun(4);
                   /
                fun(3), print(3), fun(2)(prints 0 1)
               /
           fun(2), print(2), fun(1)(prints 0)
           /
       fun(1), print(1), fun(0)(does nothing)
       /
    fun(0), print(0), fun(-1) (does nothing)

Question 2 
Predict the output of the following program. What does the following fun() do in general? 

C++
#include <iostream>
using namespace std;
 
int fun(int a[],int n)
{
  int x;
  if(n == 1)
    return a[0];
  else
    x = fun(a, n - 1);
  if(x > a[n - 1])
    return x;
  else
    return a[n - 1];
}

int main()
{
  int arr[] = {12, 10, 30, 50, 100};
  cout << " " << fun(arr, 5) <<" ";
  getchar();
  return 0;
}

// This code is contributed by shubhamsingh10
C Java Python3 C# JavaScript

Output: 
100

 

Time complexity: O(n)

Auxiliary Space: O(n)
 

fun() returns the maximum value in the input array a[] of size n.

Question 3 
Predict the output of the following program. What does the following fun() do in general?

C++
#include <iostream>
using namespace std;

int fun(int i)
{
  if (i % 2) return (i++);
  else return fun(fun(i - 1));
}
 
int main()
{
  cout << " " << fun(200) << " ";
  getchar();
  return 0;
}

// This code is contributed by Shubhamsingh10
C Java Python3 C# JavaScript

Output: 
199

 

If n is odd, then return n, else returns (n-1). Eg., for n = 12, you get 11 and for n = 11 you get 11. The statement "return i++;" returns the value of i only as it is a post-increment. 

Time complexity: O(n)

Auxiliary Space: O(1)
 

Please write comments if you find any of the answers/codes incorrect, or you want to share more information/questions about the topics discussed above. 


Article Tags :
Practice Tags :

Similar Reads