326.3 的幂:大幂整除
【LetMeFly】326.3 的幂:大幂整除
力扣题目链接:https://leetcode.cn/problems/power-of-three/
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true
;否则,返回 false
。
整数 n
是 3 的幂次方需满足:存在整数 x
使得 n == 3x
示例 1:
输入:n = 27 输出:true
示例 2:
输入:n = 0 输出:false
示例 3:
输入:n = 9 输出:true
示例 4:
输入:n = 45 输出:false
提示:
-231 <= n <= 231 - 1
进阶:你能不使用循环或者递归来完成本题吗?
解题方法:看n能否被“最大的”3的幂整除
题目有一行进阶小字说“你能不使用循环或者递归来完成本题吗?”,好一个挑衅(provocation,bushi),那就不递归或者循环了吧。
类似【LetMeFly】231.2 的幂:五种小方法判断的方法五,我们直接使用题目数据范围内最大的3的幂对n取模,看余数是否为0就好了。
如何求题目数据范围内最大的3的幂?打开python有:
1 |
|
可知如果不大于$2^{31}-1$的正整数$n$是$3$的幂那么它一定能够被$1162261467$整除。
- 时间复杂度$O(1)$
- 空间复杂度$O(1)$
AC代码
C++
1 |
|
Python
1 |
|
Java
1 |
|
Go
1 |
|
Rust
1 |
|
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
千篇源码题解已开源
326.3 的幂:大幂整除
https://blog.letmefly.xyz/2025/08/13/LeetCode 0326.3的幂/