数值的整数次方
题目
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路
判断好各种场景,一次AC
代码
public class Power {
public double Power(double base, int exponent) {
if (base==0&&exponent==0){
return 0;
}
if (exponent==0){
return 1;
}
int exp = exponent;
if (exp<0){
exp = -exp;
}
double result;
result = resultPower(base,exponent);
if (exponent<0){
result = 1/result;//负数就是倒数
}
return result;
}
public static double resultPower(double base,int exponent){
if (exponent==0){
return 1;
}
double result = resultPower(base,exponent>>1);//精巧些递归
result*=result;
if (exponent%2==1){
result *= base;//奇数的话要再乘一次
}
return result;
}
}