给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27 输出: true
示例 2:
输入: 0 输出: false
示例 3:
输入: 9 输出: true
示例 4:
输入: 45 输出: false
进阶:
你能不使用循环或者递归来完成本题吗
方法一:递归实现,简单快捷
class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
if n <= 0:
return False
if n == 1:
return True
if n % 3 == 0:
return self.isPowerOfThree(n/3)
if n % 3 != 0:
return False
方法二:利用while循环进行判断是否是因子
class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
if n == 1:
return True
while n > 3:
if n%3 != 0:
return False
n = n / 3
return n == 3