要求:判断rt
思路:2的幂跟4的幂区别在奇偶位,构造mask=10101010相与即可。另外,二项式定理知,4的幂对3取余必为1,如果是2的幂且不是4的幂,即4的x次乘2,对3取余为2
class Solution {
public:
bool isPowerOfFour(int n) {
return n>0&&((n&-n)^n)==0&&(n&0xaaaaaaaa)==0;
}
};
class Solution {
public:
bool isPowerOfFour(int n) {
return n>0&&((n&-n)^n)==0&&(n%3)==1;
}
};