快速幂

2018/10/20 Offer 共 480 字,约 2 分钟

title

problem link

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

solution

public class Solution {
    public double Power(double base, int exponent) {
        double res=Math.pow(base,exponent);
        return res;
    }
}


    public static double power(double base, int exponent) {
        int n = Math.abs(exponent);
        double result = 0.0;
        if (n == 0)
            return 1.0;
        if (n == 1)
            return base;
         
        result = power(base, n >> 1);
        result *= result;
        if ((n & 1) == 1) // 如果指数n为奇数,则要再乘一次底数base
            result *= base;
        if (exponent < 0) // 如果指数为负数,则应该求result的倒数
            result = 1 / result;
         
        return result;
    }

Search

    Table of Contents