给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。
public double Power(double base, int exponent) {
if(base == 0)
return 0;
long b = exponent;
double res = 1.0;
if(b < 0){
base = 1/base;
b = -b;
}
while(b > 0){
if((b & 1) == 1)
res *= base;
base *= base;
b >>= 1;
}
return res;
}
public double Power(double base, int exponent) {
boolean isDy = true;
if(exponent < 0){
isDy = false;
exponent = -exponent;
}else if(exponent == 0){
return 1;
}
double sum = 1.0;
for(int i = 1 ; i<= exponent; i++){
sum = sum * base;
}
if(isDy){
return sum;
} else {
return 1.0 / sum;
}
}