# 3的幂

# 思路:迭代。
public boolean isPowerOfThree(int n) {
        if (n < 1) {
            return false;
        }
        while (n % 3 == 0) {
            n /= 3;
        }
        return n == 1;
    }
1
2
3
4
5
6
7
8
9
# 思路:换底公式

参考:维基对数恒等式open in new window

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

公式: $ \frac {\log_{10}n} {\log_{10}3}=\log_3n $