Implement pow(x, n).
直接二分的方法进行pow的实现,如果学习过基本数论的话,其实这是模平方重复法的一种变形吧,
ACM的人叫做是快速幂
<span style="font-size:18px;">public class Solution {
public double pow(double x, int n) {
double ans = 1;
boolean flag = n < 0 ? true : false;
long nn = Math.abs(n + 0L);
while(nn != 0){
if( (nn & 01) == 1) ans *= x;
x *= x;
nn = nn >> 1;
}
return flag ? 1.0 / ans : ans;
}
}</span>