二分法
2的n次方,等价于2的n/2的平方,---快速幂算法的核心思想。
当指数为负数时,标记后,需要将指数变为整数。exp=-exp;
/**
* 给定一个double类型的浮点数base和int类型的整数exponent。
* 求base的exponent次方。 保证base和exponent不同时为0
* @param base 浮点数base
* @param exponent int类型的整数exponent
* @return base的exponent次方
*/
public double Power(double base, int exponent) {
if(exponent==0){
return 1;
}else if(exponent==1){
return base;
}
boolean isNegitive=false;
if(exponent<0){
isNegitive=true;
exponent= -exponent;
}
double res=Power(base,exponent/2);
res*=res;
if((exponent&1)==1){
res*=base;
}
return isNegitive?1/res:res;
}



京公网安备 11010502036488号