【题目】
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
【示例 1】
输入: 1
输出: true
解释: 20 = 1
【示例 2】
输入: 16
输出: true
解释: 24 = 16
【示例 3】
输入: 218
输出: false
【代码】
【Python】
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
return n&(n-1)==0 and n!=0
【方法2】
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
dic=dict(Counter(bin(n)[2:]))
return dic.setdefault('1',0)==1 and n>=0
【方法3:数字法】
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
if n<=0:
return False
while n>1:
if n%2:
return False
n//=2
return True