题目:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
解法:
要考虑到底数为0,指数为负数的情况,这道题主要考的是对边界值的思考。
public class Solution {
public double Power(double base, int exponent) {
boolean g_InvaildInput = false;
if(equals(base,0.0) && exponent<0){
g_InvaildInput = true;
return 0.0;
}
int absExponent = exponent;
if(exponent<0)
absExponent = -exponent;
double result = PowerWithExponent(base,absExponent);
if(exponent<0){
result = 1.0 / result;
}
return result;
}
private double PowerWithExponent(double base, int exponent){
double result = 1.0;
for(int i = 1;i<=exponent;i++){
result *= base;
}
return result;
}
private boolean equals(double numberOne,double numberTwo){
return Math.abs(numberOne - numberTwo)<0.000001;
}
}