其他分享
首页 > 其他分享> > [LeetCode] #326 3的幂

[LeetCode] #326 3的幂

作者:互联网

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。

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

输入:n = 27

输出:true

类似题目:[LeetCode] #231 2 的幂

暴力法

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

 整数限制法

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

基准转换

public class Solution {
    public boolean isPowerOfThree(int n) {
        return Integer.toString(n, 3).matches("^10*$");
    }
}

运算法

public class Solution {
    public boolean isPowerOfThree(int n) {
        return (Math.log10(n) / Math.log10(3)) % 1 == 0;
    }
}

知识点:

总结:

标签:return,int,isPowerOfThree,Solution,public,boolean,326,LeetCode
来源: https://www.cnblogs.com/jpppp/p/15304273.html