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 $