326. 3 的幂
思路:
递归 或迭代
public boolean isPowerOfThree(int n) {
//迭代 不断除以3,如果出现结果为3,则返回true
if(n<=0) return false;
if (n == 1) return true;
while(n%3== 0) {
if(n == 3) return true;
n/=3;
}
return false;
//递归--很慢
// if(n<=0) return false;
// if(n == 1 || n == 3) return true;
// return n%3==0 ? isPowerOfThree(n/3): false;
//技巧,判断是否为3的19次方的约数
// return n > 0 && 1162261467 % n == 0;
}
面试题 08.05. 递归乘法
思路:
递归
public int multiply(int A, int B) {
if(B == 0) return 0;
A = A + multiply(A,B-1);
return A;
}