Power of Four

LeetCode Question: Power of Four

Using Log

bool isPowerOfFour(int n) {
    double power = log(n) / log(4);
    
    double e = 1e-9;
    if(abs(power - floor(power)) < e)
        return true;
    else
        return false;
}

Time Complexity: O(1)O(1)โ€‹

Space Complexity: O(1)O(1)โ€‹

Using Recursion

bool isPowerOfFour(int n) {
    if(n < 1)
        return false;
    if(n == 1)
        return true;

    return((n % 4 == 0) && isPowerOfFour(n / 4));            
}

Time Complexity: O(logโก4n)O(\log_4 n)โ€‹

Space Complexity: O(logโก4n)O(\log_4 n)โ€‹ for the call stack else O(1)O(1)โ€‹

Last updated