231. 2 的幂
给你一个整数 n,请你判断该整数是否是2的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。
方法1:与运算
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
return (n>0) and (n&(n-1))==0
可以看到,对于N为2的幂的数,都有 N&(N-1)=0 ,所以这就是我们的判断条件。(这个技巧可以记忆下来,在一些别的位运算的题目中也是会用到的)。
方法2:while循环
class Solution:
def isPowerOfFour(self,n:int)->bool:
res=1
while res<n:
res*=2
return res==n