231.2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
输入: 1 输出: true 解释: 2**0 = 1
输入: 218 输出: false
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
return n > 0 and n & (n - 1) == 0
"""
若 n = 2^x且 x 为自然数(即 n 为 2 的幂),则一定满足以下条件:
1. 恒有 n & (n - 1) == 0,这是因为:
n 二进制最高位为 1,其余各位为0;
n - 1 二进制最高位为 0,其余各位为 1;
2. 恒有 n > 0。
因此,通过 n > 0 且 n & (n - 1) == 0 即可判定是否满足 n = 2^x
"""