1、描述
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/power-of-four
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2、关键字
被4整除
3、思路
和被2整除一样的思路,先用能否被2整除做一步筛选,然后使用模取余的方式做判断,
被2整除:n & (n - 1) == 0;
能被4整除 n % 3 ==1;
4、notes
位运算,和求模取余一起
5、复杂度
时间:O(1)
空间:O(1)
6、code
class Solution {
public:
bool isPowerOfFour(int n) {
if(n > 0){
return ((n & (n - 1)) == 0) && (n % 3 == 1);
}
return false;
}
};