给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27 输出: true
示例 2:
输入: 0 输出: false
示例 3:
输入: 9 输出: true
示例 4:
输入: 45 输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
思路:这道题跟之前循环作除法做的4的幂、3的幂大同小异,就不说这种方法了,但是如果不使用循环和递归,就只能选择以指定数字界限的方式,如果结果都为int类型,那么int类型中最大的3的幂(3的19次幂)都能整除更小的3的幂。所以判断条件即为——大于0且能整除3的19次幂的数,都是3的幂。
代码实现:
class Solution {
public static boolean isPowerOfThree(int n) {
return n > 0 && Math.pow(3,19)%n == 0;
}
}