0数学简单 LeetCode326. 3 的幂

0数学简单 LeetCode326. 3 的幂,第1张

326. 3 的幂

描述

给定一个整数,写一个函数来判断它是否是 3 的幂次方。


如果是,返回 true ;否则,返回 false 。


整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x

分析

循环解法:

class Solution {
    public boolean isPowerOfThree(int n) {
        if(n <= 0){
            return false;
        }
        while(n % 3 == 0) n /= 3;
        return n == 1;
    }
}

下面是大佬的题解:
通过查看相关解析,发现了这个解法,用到了数论的知识,3的幂次的质因子只有3,而所给出的n如果也是3的幂次,故而题目中所给整数范围内最大的3的幂次的因子只能是3的幂次,1162261467是3的19次幂,是整数范围内最大的3的幂次

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存