[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=abab,这是编程语言中的取模。数学意义下,负数情况与之不同。 自己可以试试。


  • 时间复杂度 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的幂(数学+约数+思维)的主要内容,如果未能解决你的问题,请参考以下文章

[E数学] lc326. 3的幂(数学+约数+思维)

[E数学] lc326. 3的幂(数学+约数+思维)

Leetcode刷题100天—326. 3的幂(数学)—day47

Leetcode刷题100天—326. 3的幂(数学)—day47

LeetCode 326 3的幂[数学 循环] HERODING的LeetCode之路

文巾解题 326. 3的幂