剑指Offer: 数值的整数次方 (java代码实现)

题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

我们可以将 x ^ n 转化为 (x * x) ^ n / 2 这是当n 为偶数的情况 奇数还需要 乘一个自身 你可以自己算一下
转化为这个公式之后我们就可以用递归求解
在这里插入图片描述
这里注意当n 为负数时 结果为它的倒数 我们要判断一下 不然会出错
下面使java代码实现

public class Solution {
    public double Power(double base, int exponent) {
        if(exponent == 0) {
            return 1;
        }
        boolean flag = false;
        if(exponent < 0) {
            flag = true;
            exponent = -exponent;
        }
        double res = Power(base * base, exponent / 2);
        if(exponent % 2 == 1) {
            res *= base;
        }        
        return flag ? 1 / res : res;
    }
}

猜你喜欢

转载自blog.csdn.net/wmh1152151276/article/details/87922898