1. 程式人生 > >LeetCode刷題記錄——第326題(3的冪)

LeetCode刷題記錄——第326題(3的冪)

題目描述

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

示例 1:

輸入: 27
輸出: true

示例 2:

輸入: 0
輸出: false

示例 3:

輸入: 9
輸出: true

示例 4:

輸入: 45
輸出: false

思路分析

  • 小於3的數中,只有等於1的數是3的冪
  • 當一個數大於1的時候,判斷這個數的依據是將其除以3,判斷餘數是否為0,如果餘數為0則繼續除,因為存在例如33這種數,一開始可以整除後來就不能整除,所以利用while迴圈,只有當一直除到1的時候才會退出。如果餘數不為0,那麼肯定不是3的冪,直接返回False

程式碼示例

class Solution(object):
    def isPowerOfThree(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n <= 0:
            return False
        elif n == 1:
            return True
        while n > 1:
            if n % 3 != 0:
                return
False n /= 3 return True