方案一:
class Solution:
def isPowerOfThree(self, n: int) -> bool:
if n == 1:
return True
elif n != 0 and n%3==0:
return self.isPowerOfThree(n/3)
else:
return False
方案二:
class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
if n>0:
if 3**round(math.log(n,3)) == n: # 取对数可能会取到近似数。用int在243的时候会出错
return True
else:
return False
else:
return False
python log()函数
描述
log() 返回 x 的自然对数。
语法
以下是 log() 方法的语法:
import math
math.log(x[, base])
注意:log()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。
参数
x – 数值表达式。
base – 可选,底数,默认为 e。
返回值
返回 x 的自然对数,x>0。
方案三:
class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
return n > 0 and 3 ** 19 % n == 0