- 1. 题目
- 2. 思路
- (1) 循环
- (2) 数学法
- 3. 代码
- 非3的幂次方必然不能被3不断整除,直到1为止。
- int取值范围内3的幂次方必然能被int取值范围内3的最大幂次方,即3的19次方整除,非3的幂次方则不行。
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public boolean isPowerOfThree(int n) {
if (n <= 0) {
return false;
}
while (n > 1) {
if (n % 3 != 0) {
return false;
}
n /= 3;
}
return true;
}
}
class Solution1 {
public boolean isPowerOfThree(int n) {
return n > 0 && 1162261467 % n == 0;
}
}



