給定一個整數,編寫一個函數來判斷它是否是 2 的冪次方。
示例 1:
輸入: 1
輸出: true
解釋: 20 = 1
思路
1.如果正好滿足是2的指數次,有且恰好一次必須滿足能被2整除。
2.整數不行,因爲3/2=1,所以必須要浮點數。
3.while終止的條件是有且恰好有一次n/2=1.0000(1也是),除了1以外,所有數字單數都不是能被2整除,先隔離在外。
class Solution(object):
def isPowerOfTwo(self, n):
"""
:type n: int
:rtype: bool
"""
if n%2==1 and n!=1:return False
while n != 1.0:
n = n/2.0
if n<1.0:
return False
return True