1 public double Power(double base, int exponent) {  2 // exponent正负都一样,如果为负数,最终结果取倒数  3 // 为了方便,取其绝对值  4 int n=Math.abs(exponent);  5 // 下面两个if是递归终止条件  6 if(n==0)  7 return 1;  8 if(n==1)  9 return base; 10 // 分治思想,计算一半的base相乘,n>>1表示n/2 11 double result=Power(base,n>>1); 12 // result的结果是一半的base相乘,所以得平方 13 result*=result; 14 // 判断n是不是奇数,如果是奇数,则最后一位一定是1,那么n跟1相与的结果就是1 15 if((n&1)==1) 16 // 如果n是奇数,还要再次乘以一个base 17 result*=base; 18 // 如果exponent是负数,最终结果取倒数 19 if(exponent<0) 20 result=1/result; 21 return result; 22 }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。