题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
解题思路
- 指数为负时,可以先对指数求绝对值,算出次方的结果后再取倒数
- 当底数为0,指数为负时,会出现对0求倒数情况,要特殊处理
- 0的0次方在数学上没有意义,因此无论输出0还是1都是可以接受的
public class Solution {
public double Power(double base, int exponent) {
int n = exponent;
if(base==0.0 && exponent<0)
throw new RuntimeException("分母不能为0");
if(exponent==0)
return 1;
else if(exponent<0){
n = -n;
}
double res = Test(base,n);
return exponent>0? res:1.0/res;
}
public double Test(double base, int exponent){
double j = 1.0;
for(int i=1;i<=exponent;i++){
j = j*base;
}
return j;
}
}