0342. 4 的幂
最后更新于
这有帮助吗?
这有帮助吗?
while (num && num % 4 == 0) {
num /= 4;
}
return num == 1;return num > 0 && (num & (num - 1)) === 0 && (num - 1) % 3 === 0;/*
* @lc app=leetcode id=342 lang=javascript
*
* [342] Power of Four
*/
/**
* @param {number} num
* @return {boolean}
*/
var isPowerOfFour = function (num) {
// tag: 数论
if (num === 1) return true;
if (num < 4) return false;
if ((num & (num - 1)) !== 0) return false;
return (num & 0x55555555) === num;
};class Solution:
def isPowerOfFour(self, num: int) -> bool:
if num == 1:
return True
elif num < 4:
return False
else:
if not num & (num-1) == 0:
return False
else:
return num & 0x55555555 == num
# 另一种解法:将数字转化为二进制表示的字符串,利用字符串的相关操作进行判断
def isPowerOfFour(self, num: int) -> bool:
binary_num = bin(num)[2:]
return binary_num.strip('0') == '1' and len(binary_num) % 2 == 1