给定一个整数,写一个函数来判断它是否是 3 的幂次方。
实例:
输入:3
输出:true
输入:27
输出:true
输入:45
输出:false
进阶:
你能不使用循环或者递归来完成本题吗?
一般情况下我们一定会用循环来除以3取余,但是进阶要求不用循环或者递归,就得换一个思路了。
因为给的数字是int,3^19是 int里 3的幂次方中最大的,只需要3^19%n来判断你是不是3的幂
代码:
class Solution {
public boolean isPowerOfThree(int n) {
return(n>0&&1162261467%n==0);
}
}