question:
Given an integer, write a function to determine if it is a power of three.
Follow up:
Could you do it without using any loop / recursion?
进阶:不用循环和递归。
循环递归:
class Solution(object):
def isPowerOfThree(self, n):
if n == 1:
return True
elif n == 0 or n % 3 != 0 :
return False
return self.isPowerOfThree(n/3)
不用递归就是判断对这个数取3的对数,四舍五入后是否还为这个数(整数),再以3为底,求结果的指数幂,如果还为n,则n是3的指数幂
def isPowerOfThree(n):
if n>0:
if 3**round(math.log(n,3)) == n:
return True
else:
return False
else:
return False