二分法

2的n次方,等价于2的n/2的平方,---快速幂算法的核心思想。

当指数为负数时,标记后,需要将指数变为整数。exp=-exp;

    /**
     * 给定一个double类型的浮点数base和int类型的整数exponent。
     * 求base的exponent次方。 保证base和exponent不同时为0
     * @param base 浮点数base
     * @param exponent int类型的整数exponent
     * @return base的exponent次方
     */
    public double Power(double base, int exponent) {
        if(exponent==0){
            return 1;
        }else if(exponent==1){
            return base;
        }
        boolean isNegitive=false;
        if(exponent<0){
            isNegitive=true;
            exponent= -exponent;
        }
        double res=Power(base,exponent/2);
        res*=res;
        if((exponent&1)==1){
            res*=base;
        }
        return isNegitive?1/res:res;

    }

大佬的图解,来源:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/solution/mian-shi-ti-16-shu-zhi-de-zheng-shu-ci-fang-kuai-s/

图片说明