问题
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
例子
思路
-
方法1
-
方法2
找到最大3次幂的数,看是否该数%n==0
代码
//方法1
class Solution {
public boolean isPowerOfThree(int n) {
if(n<=0) return false;
//3的幂,除了1,其他都能整除3
while(n!=1) {
if(n%3!=0) return false;
n/=3;
}
return true;
}
}
//方法2
if(n<=0) return false;
int a = (int)(Math.log(Integer.MAX_VALUE)/Math.log(3));
int b = (int)Math.pow(3,a);
return b%n==0;