326. Power of Three
Given an integer, write a function to determine if it is a power of three.
Follow up:
Could you do it without using any loop / recursion?
如题,给定一个数,判定其是否是3的幂。
注意不要用循环来解。
public class Solution {
public boolean isPowerOfThree(int n) {
if(n<=0) return false;
while(n>1){
if(n%3!=0){
return false;
}
n=n/3;
}
return true;
}
}
这是常规方法……
public boolean isPowerOfThree(int n) {
int[] allPowerOfThree = new int[]{1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049, 177147, 531441, 1594323, 4782969, 14348907, 43046721, 129140163, 387420489, 1162261467};
return Arrays.binarySearch(allPowerOfThree, n) >= 0;
}
这种方法震惊了……