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?
方法一
循环
1 2 3 4 5 6 7
boolisPowerOfFour(int num){ if (num <= 0) returnfalse; while ((num % 4) == 0) { num /= 4; } return num == 1; }
1 2 3 4 5 6 7
boolisPowerOfFour(int num){ if (num <= 0) returnfalse; while ((num & 0x3) == 0) { num /= 4; } return num == 1; }