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

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 326 3的幂[数学 循环] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
第一种方式就是循环遍历的方式,如果n是3的倍数不断除3直到n为1,说明n是3的幂,否则不是,代码如下:

class Solution {
public:
    bool isPowerOfThree(int n) {
        while(n && n % 3 == 0) {
            n /= 3;
        }
        return n == 1;
    }
};

第二种方法是数学的方法, 在int范围内最大的3的幂是3的19次方,那么只要是3的幂与其取余都是0,代码如下:

class Solution {
public:
    bool isPowerOfThree(int n) {
        return n > 0 && 1162261467 % n == 0;
    }
};

以上是关于LeetCode 326 3的幂[数学 循环] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

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

leetcode刷题笔记326 3的幂

Leetcode 326.3的幂 By Python

326-3的幂

LeetCode-326. Power of Three

数字与数学7:幂的问题