LeetCode刷題記錄——第326題(3的冪)
阿新 • • 發佈:2019-01-13
題目描述
給定一個整數,寫一個函式來判斷它是否是 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