📅  最后修改于: 2023-12-03 14:55:36.107000             🧑  作者: Mango
判断一个给定的整数是否为3的幂可以通过以下两种方式实现:
我们可以用循环来不断地将3乘以自身,直到它大于或等于给定的整数n。如果最后得到的值正好等于n,那么n就是3的幂。否则,n不是3的幂。
def is_power_of_three(n: int) -> bool:
if n <= 0:
return False
while n % 3 == 0:
n //= 3
return n == 1
| 参数 | 描述 | |----|----| | n | 给定的整数 |
assert is_power_of_three(27) == True
assert is_power_of_three(9) == True
assert is_power_of_three(45) == False
我们可以利用对数的性质来判断一个数是否为3的幂。具体地,如果一个数n是3的幂,那么log3(n)一定是一个整数。我们可以利用数学函数库中的log函数来计算log3(n)的值,然后判断它是否为整数。
import math
def is_power_of_three(n: int) -> bool:
if n <= 0:
return False
x = math.log(n, 3)
return abs(round(x) - x) < 1e-10
| 参数 | 描述 | |----|----| | n | 给定的整数 |
assert is_power_of_three(27) == True
assert is_power_of_three(9) == True
assert is_power_of_three(45) == False
以上就是两种判断给定整数是否为3的幂的方法。具体采用哪种方法实现,应根据具体问题以及性能需求进行选择。