Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example:
Given num = 16, return true. Given num = 5, return false.
Follow up: Could you solve it without loops/recursion?

bool isPowerOfFour(int num) 
{
    return !(num & (num - 1)) && (num & 0x55555555);
}
bool isPowerOfFour(int num) 
{
    return num > 0 && !(num & (num - 1)) && !((num - 1) % 3);
}

被题目限制不能使用的方法:

bool isPowerOfFour(int num) 
{
    while(num &&(num % 4 ==0))
    {
        num /= 4;
    }
    return (1 == num) ? true:false;
}
bool isPowerOfFour(int num) 
{
    if(num <= 0)
        return false;
    else if(num == 1)
        return true;
    else if(num & 0x3)
        return false;
    
    return isPowerOfFour(num/4);
}