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

Practice Questions for Recursion | Set 2

Last Updated : 25 Apr, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Explain the functionality of the following functions. 

Question 1 

C++
/* Assume that n is greater than or equal to 1 */
int fun1(int n)
{
    if (n == 1)
        return 0;
    else
        return 1 + fun1(n / 2);
}
Java Python3 C# JavaScript

Answer: The function calculates and returns log2floor

For example, if n is between 8 and 15 then fun1() returns 3. If n is between 16 to 31 then fun1() returns 4.

Question 2 

C++
/* Assume that n is greater than or equal to 0 */
void fun2(int n)
{
if(n == 0)
    return;

fun2(n/2);
cout << n%2 << endl;
} 
C Java Python3 C# JavaScript

Auxiliary Space: O(log2N), due to recursion call stack

Time Complexity: O(log N)

Answer: The function fun2() prints the binary equivalent of n. For example, if n is 21 then fun2() prints 10101. 

Note: Above functions are just for practicing recursion, they are not the ideal implementation of the functionality they provide. 

Please write comments if you find any of the answers/codes incorrect. 


Article Tags :
Practice Tags :

Similar Reads