判断整数 n
是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
即:
Example:
Input: n = 1
Output: true
Explanation: 2^0 = 1
Example:
Input: n = 16
Output: true
Explanation: 2^4 = 16
Example:
Input: n = 3
Output: false
编号 | 解法 | Approach |
---|---|---|
1 | 循环迭代 | Loop Iteration |
2 | 基准转换 | Base Conversion |
3 | 位运算 | Bitwise Solution |
iteration.js
const isPowerOfTwo = (n) => {
if (n < 1) return false;
while (n % 2 === 0) {
n /= 2;
}
return n === 1;
};
base-conversion.js
const isPowerOfTwo = (n) => /^10*$/.test(n.toString(2));
bitwise.js
const isPowerOfTwo = (n) => n > 0 && (n & (n - 1)) === 0;