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

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)