326. Power of Three
给定任意随机数,判定是否为3的乘方。
1. 递归
public class Solution {
public boolean isPowerOfThree(int n) {
if (n == 1) return true;
if (n % 3 >0 || n == 0) return false; //n已经除不尽的两种情况
return isPowerOfThree (n / 3);
}
}
2. 任何一个3的i次方一定能被int型里最大的3的i次方整除,如下所示:
if (n>0) {
if (1162261467 % n == 0) return true;
else return false;
}
3. log函数
class Solution {
public:
bool isPowerOfThree(int n) {
double res = log10(n) / log10(3); //有精度问题,不要用log
return (res - int(res) == 0) ? true : false;
}
};

浙公网安备 33010602011771号