给定一个整数,写一个函数判断它是否是3的幂
Example 1:
Input: 27 Output: trueExample 2:
Input: 0 Output: falseExample 3:
Input: 9 Output: trueExample 4:
Input: 45 Output: false
进阶:
你能不适用循环或者迭代完成这个题么?
1:累除3
循环
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
if n == 0:
return False
while n % 3 == 0:
n //= 3
return n == 1
递归
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)
else:
return False
2:round()+math.log()方法(参考他人)
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
if n <= 0:
return False
return 3 ** round(math.log(n, 3)) == n
类似方法(参考他人)
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
if n <= 0:
return False
sum = 3 ** 100
return sum % n == 0
算法题来自:https://leetcode-cn.com/problems/power-of-three/description/
本文介绍了一种算法,用于判断一个给定的整数是否可以表示为3的幂次方。提供了三种不同的实现方法:使用循环进行累除3、使用递归进行累除3以及利用math.log()函数进行判断。这些方法覆盖了从基础到进阶的不同难度,适合不同水平的读者学习和理解。
770

被折叠的 条评论
为什么被折叠?



