题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
代码实现:
public class Solution {
public double Power(double base, int exponent) {
if (base == 0 && exponent == 0) {
throw new RuntimeException("invalid input. base and exponent both are zero");
}
if(exponent == 0) {
return 1;
}
if(exponent == 1) {
return base;
}
if(base == 0) {
return 0;
}
int n = Math.abs(exponent);
double result = 0.0;
result = Power(base, n>>1);
result *= result;
if((n&1) != 0) {
result *= base;
}
if(exponent < 0) {
result = 1/result;
}
return result;
}
}