本题虽然我并没有用最优解解出,但我并不认为这是一道好的题目,recursion或for loop我觉得足矣,follow up过于tricky,本题有好几个解法,我准备这次用:
- 得到factor
- 再用这个factor反向计算,看跟原来的n是不是一样的
class Solution {
public boolean isPowerOfThree(int n) {
return n > 0 && n == Math.pow(3, Math.round(Math.log(n) / Math.log(3)));
}
}