package math;
/**
* 3的幂
* 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
*
* 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x
*
*
*
* 示例 1:
*
* 输入:n = 27
* 输出:true
* 示例 2:
*
* 输入:n = 0
* 输出:false
* 示例 3:
*
* 输入:n = 9
* 输出:true
* 示例 4:
*
* 输入:n = 45
* 输出:false
*
*
* 提示:
*
* -231 <= n <= 231 - 1
*
*
* 进阶:
*
* 你能不使用循环或者递归来完成本题吗?
*
* 作者:力扣 (LeetCode)
* 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnsdi2/
* 来源:力扣(LeetCode)
* 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
*
* */
public class IsPowerOfThree {
public static void main(String[] args) {
System.out.println(" "+(1/3));
boolean isPowerOfThree = isPowerOfThreeNew(1);
System.out.println("isPowerOfThree "+isPowerOfThree);
}
private static boolean isPowerOfThree(int num){
if (num == 0) {
return false;
}
if (num ==3 || num ==1) {
return true;
}
if (num%3!=0) {
return false;
}
return isPowerOfThree(num/3);
}
private static boolean isPowerOfThreeNew(int num){
if (num>1) {
while (num%3==0){
num/=3;
}
}
return num==1;
}
}
输出:
0
isPowerOfThree true