本文共 1184 字,大约阅读时间需要 3 分钟。
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; }}
转载地址:http://zzgai.baihongyu.com/