【题目描述】
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^x=n
log(3^x) = log(n)
x log(3) = log(n)
x = log(n) / log(3)
由于JAVA double浮点型的问题,需判断Math.abs(x - Math.round(x)) < 10e-15public class Solution {
public boolean isPowerOfThree(int n) {
double temp = 10e-15;
if(n==0) return false;
double res = Math.log(n) / Math.log(3);
return Math.abs(res-Math.round(res)) < temp;
}
}