给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例 1:
输入: 1 输出: true 解释: 20 = 1
示例 2:
输入: 16 输出: true 解释: 24 = 16
示例 3:
输入: 218 输出: false
class Solution(object):
def isPowerOfTwo(self, n):
"""
:type n: int
:rtype: bool
"""
#解法1:循环除以2
# flag=True
# if n==1:
# return True
# if n<=0:
# return False
# while n>1:
# if n%2!=0:
# flag=False
# n=n/2
# return flag
#网上查看别人的思路,这道题其实和算2进制数中几个1类似,2的幂一定是只有一个1
if n<1:
return False
return not(n&(n-1))
f=Solution()
print(f.isPowerOfTwo(3))