# Practice Questions for Recursion | Set 2

• Difficulty Level : Easy
• Last Updated : 16 May, 2022

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

 `/* Assume that n is greater than or equal to 1 */` `static` `int` `fun1(``int` `n)` `{` `    ``if` `(n == ``1``)` `        ``return` `0``;` `    ``else` `        ``return` `1` `+ fun1(n / ``2``);` `}`

## Python3

 `# Assume that n is greater than or equal to 1 */` `def` `fun1(n):` `    ``if``(n ``=``=` `1``):` `        ``return` `0` `    ``else``:` `        ``return` `1` `+` `fun1(n``/``/``2``)`

## C#

 `/* Assume that n is greater than or equal to 1 */` `static` `int` `fun1(``int` `n)` `{` `    ``if` `(n == 1)` `        ``return` `0;` `    ``else` `        ``return` `1 + fun1(n / 2);` `}`

## Javascript

 ``

Answer: The function calculates and returns 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

 `/* Assume that n is greater than or equal to 0 */` `void` `fun2(``int` `n)` `{` `  ``if``(n == 0)` `    ``return``;`   `  ``fun2(n/2);` `  ``printf``(``"%d"``, n%2);` `}  `

## Java

 `/* Assume that n is greater than or equal to 1 */` `static` `void` `fun2(``int` `n)` `{` `if``(n == ``0``)` `    ``return``;` ` `  `fun2(n/``2``);` `System.out.println(n%``2``);` `} `

## Python3

 `# Assume that n is greater than or equal to 0 */` `def` `fun2(n):` `    ``if``(n ``=``=` `0``):` `        ``return` `    `  `    ``fun2(n ``/``/` `2``)` `    ``print``(n ``%` `2``, end``=``"")`

## C#

 `void` `fun2(``int` `n) ` `{ ` `if``(n == 0) ` `    ``return``; ` `  `  `fun2(n/2); ` `Console.Write(n%2); ` `} `

## Javascript

 ``

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.