题目描述
Given an integer, write a function to determine if it is a power of three.
题目大意:给定一个整数,判断这个整数是否是3
的n次幂
样例
Example 1:
Input: 27
Output: true
Example 2:
Input: 0
Output: false
Example 3:
Input: 9
Output: true
Example 4:
Input: 45
Output: false
python解法
class Solution:
def isPowerOfThree(self, n: int) -> bool:
return n>0 and 1162261467 % n == 0
Runtime: 96 ms
Memory Usage: 13.9 MB
题后反思:
- 这应该是最简单的一种写法了,但却不是最快的写法。
- 1162261467是32位有符号整数里面可接受的3的次幂最大的整数。
C语言解法
bool isPowerOfThree(int n){
return n>0?1162261467 % n == 0:false;
}
Runtime: 12 ms, faster than 82.84% of C online submissions for Power of Three.
Memory Usage: 7.5 MB, less than 50.00% of C online submissions for Power of Three.
题后反思:无
bool isPowerOfThree(int n){
while(n>2)
{
if (n%3)
return false;
n /= 3;
}
return n == 1;
}
Runtime: 24 ms
Memory Usage: 7.5 MB
文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步
本文介绍了一种高效判断整数是否为3的幂的方法,提供了Python和C语言的实现,通过检查最大3的幂次方数对输入整数取余的结果,快速得出结论。

420

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



