3 的幂
概述:给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x 。
方法一:约分
思路:设定一个上限值,然后判断是否被约分即可。
def isPowerOfThree(self, n: int) -> bool:
return n > 0 and 3 ** 30 % n == 0
方法二:递归
思路:设定好边界条件,然后依次递归到最小值,判断即可。
def isPowerOfThree(self, n: int) -> bool:
方法三:递归(优化版)
思路:若被 3 整除,更新原整数,依次循环到 1 判断即可。
def isPowerOfThree(self, n: int) -> bool:
while n > 0 and n % 3 == 0:
方法四:暴力循环
思路:用 math.pow() 方法计算幂值,依次循环判断即可。
def isPowerOfThree(self, n: int) -> bool:
方法五:暴力循环
思路:设定一个初始整数,乘以 3 的倍数,然后循环判断即可。
def isPowerOfThree(self, n: int) -> bool:
总结
简单题,就要多秀几种方法!