3616n的幂

Posted 小雷FansUnion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3616n的幂相关的知识,希望对你有一定的参考价值。

package cn.fansunion.leecode.math;

/**

 * @author wen.lei@brgroup.com

 *

 *         2022-2-23

 */

public class MathPower

    /**

     * 判定一个数n是否为某个数a的b次方。PowerOfThree,PowerOfFour,本质都是PowerOfN。

     *

     * @param num

     * @param n

     */

    public boolean powerOfN(int n, int a)

        if (n <= 0)

            return false;

        

        if (n == 1)

            return true;

        

        // >=a

        while (n >= a)

            if (n % a == 0)

                n = n / a;

             else 

                return false;

            

        

        // 1

        return n == 1;

    

    /**

     * Math.pow(a,b),支持整数,b>=0;2的3次方=8

     *

     * @param a

     * @param b

     * @return

     */

    public int pow(int a, int b)

        if (b < 0)

            throw new IllegalArgumentException("b<0");

        

        if (b == 0)

            return 1;

        

        int n = 1;

        for (int index = 0; index < b; index++)

            n = n * a;

        

        return n;

    

package test.leecode.math;

import org.junit.Assert;

import org.junit.Test;

import cn.fansunion.leecode.math.MathPower;

/**

 * @author wen.lei@brgroup.com

 *

 *         2022-2-23

 */

public class MathPowerTest

    @Test

    public void test()

        MathPower mp = new MathPower();

        // 4

        Assert.assertTrue(mp.powerOfN(164));

        Assert.assertTrue(mp.powerOfN(2564));

        Assert.assertTrue(mp.powerOfN(44));

        Assert.assertTrue(mp.powerOfN(14));

        Assert.assertFalse(mp.powerOfN(-14));

        Assert.assertFalse(mp.powerOfN(34));

        Assert.assertFalse(mp.powerOfN(2574));

        // 3

        Assert.assertTrue(mp.powerOfN(273));

        Assert.assertTrue(mp.powerOfN(93));

        Assert.assertTrue(mp.powerOfN(33));

        Assert.assertTrue(mp.powerOfN(13));

        Assert.assertFalse(mp.powerOfN(-13));

        Assert.assertFalse(mp.powerOfN(-33));

        Assert.assertFalse(mp.powerOfN(2573));

    

    @Test

    public void testPow()

        MathPower mp = new MathPower();

        Assert.assertEquals(1, mp.pow(14));

        Assert.assertEquals(16, mp.pow(24));

        Assert.assertEquals(81, mp.pow(34));

        Assert.assertEquals(625, mp.pow(54));

        Assert.assertEquals(27, mp.pow(33));

        Assert.assertEquals(9, mp.pow(32));

        Assert.assertEquals(1, mp.pow(30));

        Assert.assertEquals(1, mp.pow(40));

    

以上是关于3616n的幂的主要内容,如果未能解决你的问题,请参考以下文章

快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方!

2的幂次方表示

递归--练习9--noi8758 2的幂次方表示

2021-11-06:3的幂。给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n ==(

c++2的幂次方

题解二的幂次方