1. 程式人生 > >LeetCode:231. 2的冪

LeetCode:231. 2的冪

1、題目描述

給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。

示例 1:

輸入: 1
輸出: true
解釋: 20 = 1

示例 2:

輸入: 16
輸出: true
解釋: 24 = 16

示例 3:

輸入: 218
輸出: false

2、題解

2.1、解法一

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n == 0:
            return False
        if n == 1:
            return True

        while n%2 == 0:
            n = n//2
        return True if n == 1 else False

2.2、解法二

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n == 0:
            return False
        while n%2 == 0:
            n = n>>1
        return True if n == 1 else False