您的位置:首页 > 其它

342. Power of Four

2016-06-03 15:01 176 查看
题目大意:判断一个整数num是不是4的指数,不用循环和递归的情况下。

思路:(借鉴)

4指数的整数的二进制表示只有1个1.其他全为0,于是num&(num-1)=0

4^n可以分解为3*(4^0+4^1+4^2...+4^(n-1)),于是(num-1)%3=0,貌似这一步可以更优化,采用位运算代替取模。

code:

bool isPowerOfFour(int num) {
return num > 0 && (num & (num - 1)) == 0 && (num - 1) % 3 == 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: