题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
解答:为啥先想到的是递归,真是摆脱不了了
1.递归
public class Q_12 {

public double Power(double base, int exponent) {
    if(exponent<0){
        return  1/(Power1(base,exponent*-1));
    }else  if(exponent==0){
        return 1;
    }else{
        return Power1(base,exponent);
    }
}
public double Power1(double base, int exponent) {
    if (base==0) {
        return (double) 0;
    }
    if(exponent==1){
        return base;
    }
    if(exponent>1){
        return base*Power1(base, exponent-1);
    }
    return  0;
}

}
2.递推
链接:https://www.nowcoder.com/questionTerminal/1a834e5e3e1a4b7ba251417554e07c00?answerType=1&f=discussion

public class Solution {

public double Power(double base, int exponent) {
    if (base == 0.0){
        return 0.0;
    }
    // 前置结果设为1.0,即当exponent=0 的时候,就是这个结果
    double result = 1.0d;
    // 获取指数的绝对值
    int e = exponent > 0 ? exponent : -exponent;
    // 根据指数大小,循环累乘
    for(int i = 1 ; i <= e; i ++){
        result *= base;
    }
    // 根据指数正负,返回结果
    return exponent > 0 ? result : 1 / result;

}
}