给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0。
public class Solution {
private double power(double base, int exponent) {
if(exponent == 1){
return base;
}
// 偶数
if((exponent&1)==0){
int temp = (int)power(base, exponent>>1);
return temp*temp;
}else{
int temp = (int)power(base, (exponent-1)>>1);
return temp*temp*base;
}
}
public double Power(double base, int exp) {
if (base == 0) {
if (exp > 0){
return 0;
}
else if (exp == 0){
return 0;
}
else {
throw new RuntimeException();
}
} else {
if (exp > 0){
return power(base, exp);
}
else if (exp == 0){
return 1;
}
else{
return 1 / power(base, -exp);
}
}
}
}