Algorithms | Recursion | Question 7

Last Updated :
Discuss
Comments

What does the following function do? 

C++
int fun(unsigned int n) {
    if (n == 0 || n == 1)
        return n;

    if (n % 3 != 0)
        return 0;

    return fun(n / 3);
}
C
int fun(unsigned int n)
{
    if (n == 0 || n == 1)
        return n;

    if (n%3 != 0)
        return 0;

    return fun(n/3);
}
Java
int fun(unsigned int n) {
    if (n == 0 || n == 1)
        return n;

    if (n % 3 != 0)
        return 0;

    return fun(n / 3);
}
Python
def fun(n):
    if n == 0 or n == 1:
        return n

    if n % 3 != 0:
        return 0

    return fun(n // 3)
JavaScript
function fun(n) {
    if (n === 0 || n === 1)
        return n;

    if (n % 3 !== 0)
        return 0;

    return fun(n / 3);
}

It returns 1 when n is a multiple of 3, otherwise returns 0

It returns 1 when n is a power of 3, otherwise returns 0

It returns 0 when n is a multiple of 3, otherwise returns 1

It returns 0 when n is a power of 3, otherwise returns 1

Share your thoughts in the comments