package com.xiaobu.leetcode;
/**
* @author xiaobu
* @version JDK1.8.0_171
* @date on 2019/10/23 16:51
* @description 判断一个整数是否为3的次幂 还可以用循环、递归实现
*/
public class CheckPowerOfThree {
public static boolean checkIsPowerOfThreeByEazyWay(int n) {
return n > 0 && Math.pow(3, 19) % n == 0;
}
public static void main(String[] args) {
boolean flag = checkIsPowerOfThreeByEazyWay(1);
System.out.println("flag = " + flag);
System.out.println("Integer.MAX_VALUE="+Integer.MAX_VALUE);
//3的20次幂
long threePowOfNineteen = (long) Math.pow(3, 19);
System.out.println("threePowOfNineteen = " + threePowOfNineteen);
long threePowOfTwenty = (long) Math.pow(3, 20);
System.out.println("threePowOfTwenty = " + threePowOfTwenty);
boolean result = checkIsPowerOfThreeByRecursive(81);
System.out.println("result = " + result);
}
/**
* 递归法
*/
public static boolean checkIsPowerOfThreeByRecursive(int n) {
if (n == 1) {
return true;
}
if (n == 0) {
return false;
}
return checkIsPowerOfThreeByRecursive(n / 3) && n % 3 == 0;
}
}
3的次幂
最新推荐文章于 2021-12-07 05:00:00 发布