实现 pow(x, n) ,即计算 x
的整数 n
次幂函数(即,xn
)。
class Solution {
public double myPow(double x, int n) {
long p = n; //int的最小值的绝对值比最大值大1,取绝对值会超出范围,所以改为Long
p=Math.abs(p);
double temp = x;
double result = 1;
while(p>0){
if((p&1)== 1){//如果是奇数就执行
result=result*temp;
}
temp=temp*temp;
p>>=1;//每次指数变为二倍,舍弃n二进制的最低位,每次判断最低位
}
result n > 0 ? result : 1.0 / result;
}
}