3的幂(简单)
2020年6月16日
题目来源:力扣
解题
- 循环
class Solution {
public boolean isPowerOfThree(int n) {
if(n<=0) return false;
while(n%3==0){
n/=3;
}
return n==1;
}
}
- 递归
class Solution {
public boolean isPowerOfThree(int n) {
if(n == 1){
return true;
}
else if(n > 0 && n % 3 == 0){
return isPowerOfThree(n / 3);
}
else{
return false;
}
}
}
- 正则判断
这都能用正则表达式?我真的傻了,学到了学到了。
把数转换成三进制,如果是3的幂,那肯定是1开头,后面接的是0。
class Solution {
public boolean isPowerOfThree(int n) {
return Integer.toString(n, 3).matches("^10*$");
}
}