题目
大致思路
- 本题要求不能用递归和循环,但还是附上简单说明,递归:每次除以3,看余数是否为0;循环:不断的除以3,或者从3开始不断的做pow运算,比较与n的差值是否为0。
- 不递归的话,我们直接使用换底公式,求出Log3 n,如果该值与取整后的res相同,则为3的幂次,否则返回false。
代码实现
package com.immunize.leetcode.isPowerOfThree;
//只附上不递归不循环的方法
public class Solution {
public boolean isPowerOfThree(int n) {
double res = Math.log10(n) / Math.log10(3);
/*
if (res - (int) res == 0)
return true;
else
return false;
*/
return (res - (int)res == 0) ? true:false;
}
}