Practice Questions for Recursion | Set 4

Question 1
Predict the output of following program.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

#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

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

#include<stdio.h>
void fun(int x)
{
  if(x > 0)
  {
     fun(--x);
     printf("%d\t", x);
     fun(--x);
  }
}
  
int main()
{
  int a = 4;
  fun(a);
  getchar();
  return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.io.*;
  
class GFG {
  
    static void fun(int x) 
    
        if(x > 0
        
            fun(--x); 
            System.out.print(x + " "); 
            fun(--x); 
        
    
      
    public static void main (String[] args)
    
        int a = 4
        fun(a); 
    
}
  
// This code is contributed by SHUBHAMSINGH10

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

def fun(x):
      
    if(x > 0):
        x -= 1
        fun(x) 
        print(x , end=" ")
        x -= 1
        fun(x) 
          
# Driver code
a = 4 
fun(a) 
  
# This code is contributed by SHUBHAMSINGH10

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

using System;
  
class GFG{
  
    static void fun(int x) 
    
        if(x > 0) 
        
            fun(--x); 
            Console.Write(x + " "); 
            fun(--x); 
        
    }  
      
    static public void Main () 
    
        int a = 4; 
        fun(a);  
    
}
// This code is contributed by SHUBHAMSINGH10

chevron_right


Output:

0 1 2 0 3 0 1
 
                   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 following program. What does the following fun() do in general?

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

#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

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

#include<stdio.h>
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};
  printf(" %d ", fun(arr, 5));
  getchar();
  return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.io.*;
   
class GFG {
   
    static 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];
    }
      
    public static void main (String[] args)
    {
        int arr[] = {12, 10, 30, 50, 100};
        System.out.println(" "+fun(arr, 5)+" ");
    }
}
  
// This code is contributed by shubhamsingh10

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

def fun( a, n):
    if(n == 1):
        return a[0]
    else:
        x = fun(a, n - 1)
    if(x > a[n - 1]):
        return x
    else:
        return a[n - 1]
  
# Driver code
arr = [12, 10, 30, 50, 100]
print(fun(arr, 5))
  
# This code is contributed by shubhamsingh10

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

using System;
  
public class GFG{
    static 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];
    }
      
    static public void Main ()
    {
        int[] arr = {12, 10, 30, 50, 100};
        Console.Write(" "+fun(arr, 5)+" ");
    }
}
  
// This code is contributed by shubhamsingh10

chevron_right


Output:

100

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



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

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

#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

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.io.*;
  
class GFG {
    static int fun(int i)
    {
        if (i % 2 == 1) return (i++);
        else return fun(fun(i - 1));
    }
      
    public static void main (String[] args) {
        System.out.println(" " + fun(200) + " ");
    }
}
  
// This code is contributed by Shubhamsingh10

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

using System;
  
class GFG{
      
static int fun(int i)
{
    if (i % 2 == 1) return (i++);
    else return fun(fun(i - 1));
}
  
// Driver code    
static public void Main ()
    Console.WriteLine(fun(200));
}
}
  
// This code is contributed by Shubhamsingh10

chevron_right


Output:

199

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

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.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.




My Personal Notes arrow_drop_up

Improved By : SHUBHAMSINGH10

Article Tags :
Practice Tags :


10


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.