给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27
输出: true
示例 2:
输入: 0
输出: false
示例 3:
输入: 9
输出: true
示例 4:
输入: 45
输出: false
O(n)解法 循环
class Solution {
public boolean isPowerOfThree(int n) {
if (n<=0) return false;
if (n==1) return true;
while(n>1){
if(n%3!=0) return false;
n/=3;
}
return true;
}
}
O(1)
1162261467是3的19次幂,是整数范围内最大的3的幂次。
class Solution {
public boolean isPowerOfThree(int n) {
return n > 0 && 1162261467%n == 0;
}
}