1、题目描述

leetcode【数学】-----326. Power of Three(3的幂)

2、分析

        这道题使用循环很容易能得到结果,只需要将这个数不停地除以3,最后判断迭代之后的商是否为1。但是题目中说可以不使用循环,那么就需要一点取巧的办法,题目中输入的是一个int型数据,那么int类型正数范围是0-2^31,这个范围内最大的3的次方数是1162261467,这样我们只需要判断这个数能不能被n整除即可。

3、代码

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


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

4、相关知识点

        第二种方法的思路需要了解。

相关文章:

  • 2021-11-29
  • 2021-08-12
  • 2022-02-17
  • 2021-11-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-23
  • 2021-12-02
  • 2021-09-04
  • 2022-01-29
  • 2021-08-26
  • 2022-12-23
相关资源
相似解决方案