Power of Four
Given num = 16, return true. Given num = 5, return false.basic Idea:
2 的乘方一定是只含有一个 1, 而 4 的乘方一定是 2 的乘方: 1 1 1 2 10 x 4 100 100 8 1000 x 16 1 0000 1 0000 32 10 0000 x 64 100 0000 100 0000 ... 可以看到如下规律,在 1,2,4,8,16,32,64 ... 中, 只有 1, 4, 16, 64 ... 是 4 的乘方, 所以我们可以用一个 bitmask:0x55555555, 即 '0b1010101010101010101010101010101' 来筛选2的乘方中的4的乘方;class Solution { public boolean isPowerOfFour(int num) { if ((num & (num - 1)) == 0 && (num & 0x55555555) != 0) { return true; } else { return false; } } }