给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
java
public class Solution {
public double Power(double base, int exponent) {
if (Double.compare(base, 0.0) == 0 && exponent <= 0) {
return -1;
}
long n = (long)exponent;
double temp = getExp(base, Math.abs(n));
if (n < 0) {
return temp = 1 / temp;
}
return temp;
}
private double getExp(double base, long exponent) {
if (exponent == 0) {
return 1;
}
if (exponent == 1) {
return base;
}
double res = getExp(base, exponent >> 1);
res *= res;
if ((exponent & 0x1) == 1) {
res *= base;
}
return res;
}
}