题目分析
题目链接,登录 LeetCode 后可用
题目要求是让我们判断一个整数是不是 3 的次方数。首先将整数分为负数、0、正数三种情况,依次讨论。首先负数不可能是 3 的次方数,其次 0 不是 3 的次方数,剩下的就是正数。假设给我的数是 n,不停的用 n 除以 3,并在这个过程中判断 n % 3 是否为 0。如果不为 0,那么就说明不是 3 的次方数。因为 3 的次方数除上 3 得到的结果仍然是 3 的倍数。
代码
class Solution {
public boolean isPowerOfThree(int n) {
if(n <= 0) {
return false;
}
while(n % 3 == 0) {
n = n / 3;
}
return n == 1;
}
}
网友评论