题目地址:https://leetcode-cn.com/problems/power-of-two/
题解思想:
普通思想(使用循环):
1. 2的幂,首先排除0与负数,都为false
2. 对2取余,若出现余数不为0,则代表不能被2整除,为false。若余数为0,则循环除以2再取余。
3. 若最后为1,则代表一直被2整除结束,为true
进阶思想(不使用循环):
普通题解代码:
def isPowerOfTwo(n):
if(n <= 0):
return False
while(n > 1):
if (n % 2):
return False
n = n / 2
return True
进阶题解代码:
class Solution(object):
def isPowerOfTwo(self, n):
if n <= 0:
return False
if(n & (n - 1) == 0):
return True
return False