最简单的代码实现如下:
public double Power(double base, int exponent) {
double result=1.0;
for(int i=1;i<=exponent;i++)
result*=base;
return result;
}
但是上述代码未考虑如下问题:
1、0的0次方无意义(程序输出1)
2、当指数为负数时,应先对指数求绝对值,算出结果之后再取倒数
3、当底数为0指数为负数时,会出现对0取倒数的情况导致程序运行出错
static boolean invalidInput=false;
public double Power(double base,int exponent) {
invalidInput=false;
if(base==0.0 && exponent<0) {
invalidInput=true;
return 0.0;
}
int newExponent=exponent;
if(exponent<0)
newExponent=-exponent;
double result=powerWithUnsignedExponent(base,newExponent);
if(exponent<0)
result=1/result;
return result;
}
double