326. 3的幂/C++
累除法
bool isPowerOfThree(int n) {
if(n <= 0 || n == 2)
return false;
if(n == 1)
return true;
while(n > 1){
if(n % 3 != 0)
return false;//如果不能被3整除,说明就不是3的幂
n /= 3;
}
return true;
}
累乘法,会略微快一点
因为n
可能临近int
的最大值,i*3
后会越界,因此用long long
来存i
bool isPowerOfThree(int n) {
long long i=1;
for(;i<=n;i*=3){
if(i==n) return true;
}
return false;
}