1、打表
bool isPowerOfThree(int n) {
vector<int> arr = { 1,3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14348907,43046721,129140163,387420489,1162261467 };
int len = arr.size();
for (int i = 0; i < len; i++) {
if (n == arr[i])
return true;
}
return false;
}
2、利用最大的一个
bool isPowerOfThree(int n) {
if (n > 0 && 1162261467 % n == 0)
return true;
return false;
}