[E数学] lc326. 3的幂(数学+约数+思维)
Posted Ypuyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[E数学] lc326. 3的幂(数学+约数+思维)相关的知识,希望对你有一定的参考价值。
1. 题目来源
链接:326. 3的幂
2. 题目解析
只会试除法和枚举 3 的倍数的方法。
最秀的一种,在 int
范围内,最大的 3 的幂是
3
19
=
1162261467
3^19=1162261467
319=1162261467。那么任意一个 3^x
都是 3^19 的约数。故直接取模即可。
顺便提一个 a % b = a − a b ∗ b a\\%b=a- \\frac a b *b a%b=a−ba∗b,这是编程语言中的取模。数学意义下,负数情况与之不同。 自己可以试试。
- 时间复杂度: O ( l o g n ) O(logn) O(logn)
- 空间复杂度: O ( 1 ) O(1) O(1)
class Solution
public:
bool isPowerOfThree(int n)
return n > 0 && 1162261467 % n == 0;
;
class Solution
public:
bool isPowerOfThree(int n)
while (n && n % 3 == 0)
n /= 3;
return n == 1;
;
以上是关于[E数学] lc326. 3的幂(数学+约数+思维)的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—326. 3的幂(数学)—day47
Leetcode刷题100天—326. 3的幂(数学)—day47