1. 问题描述
检测一个整数n是否为2的幂次。
2. 问题示例
n=4, 返回True; n=5, 返回False
3. 代码实现
# 参数num是一个整数
# 返回是True和False
class Solution:
def checkPowerOf2(self,num):
ans =1 #从1开始
for i in range(31): # 为什么是31呢?因为整数int最大直接为4个字节,32位
if ans == num:
return True
ans = ans<<1 # << 表示左一位
return False
if __name__ == '__main__':
temp = Solution()
num1 = 16
num2 = 17
print(("输入:" + str(num1)))
print(('输出:' + str(temp.checkPowerOf2(num1))))
print(('输入:' + str(num2)))
print(('输出:' + str(temp.checkPowerOf2(num2))))
4. 结果
输入:16
输出:True
输入:17
输出:False
网友评论