二分法
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; }