JZ12-数值的整数次方

数值的整数次方

https://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey

class Solution {
    public double Power(double base, int exponent) {
        if (base == 0) {
            return 0.0;
        }
        if (exponent == 0) {
            return 1.0;
        }
        double temp = base;  //2 * 2 = 4  ,下一轮是 4 * 2 不是 4 * 4
        for (int i = 0; i < Math.abs(exponent) - 1; i++) {
            base = base * temp;
        }
        if (exponent > 0) {
            return base;
        } else {
            return 1 / base;
        }
    }

    //幂计算
    public double Power2(double base, int exponent) {
        if (base == 0) {
            return 0.0;
        }
        if (exponent == 1) {
            return base;
        }

        boolean isNegative = false;
        if (exponent < 0) {
            exponent = -exponent;
            isNegative = true;
        }
        double pow = Power2(base * base, exponent / 2);  //如果 2 ^ 4 = 4 ^ 2 = (2 * 2) ^ 2

        if (exponent % 2 != 0) {  //如果 2 * 3 = (2 * 2) * 2 = 4 * 2
            pow = pow * base;
        }
        return isNegative ? 1 / pow : pow;
    }
}

全部评论

相关推荐

Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
SadnessAlex:跟三十五岁原则一样,人太多给这些***惯坏了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务