【Java语言】力扣系列----剑指 Offer 16. 数值的整数次方

实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

示例 1:

输入: 2.00000, 10
输出: 1024.00000
示例 2:

输入: 2.10000, 3
输出: 9.26100
示例 3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25

说明:

-100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

具体代码实现如下:

class Solution {
    public double myPow(double x, int n) {
        // 特例处理,如果x为0,且n不为零,则返回零
        if(x == 0 && n != 0) return 0;
        // 初始结果赋值为1.0是因为 当n为0时,结果为1.
        double res = 1.0;
        // 将整形n转化为长整型b
        long b = n;

        // 处理指数小于零的情况
        if(b < 0){
            x = 1/x;
            b = -b;
        }
        // 指数小于等于0时 跳出循环
        while(b > 0){
            // b%2 == 1 是为了判断b的奇偶性,奇数时 给结果集乘上一个底数
            if((b%2) == 1)  res *= x;
            // 偶数时,让底数乘起本身
            x *= x;
            b /= 2;
        }

        return res;

    }
}

人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
-----------纳兰性德

小白寄语:学如逆水行舟,不进则退。

©️2020 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值