剑指 Offer 16. 数值的整数次方

快速幂。处理当指数为负数时的情景,还要注意int32的数据范围。

class Solution {
    public double myPow(double x, int n) {
      if(x==0)
          return 0;
      double res=1;
      long b=n;
      if(n<0)
      {
          x=1/x;
          b=-b;//用long存储是因为int32的数值范围在边界条件转化会出错
      }
     //快速幂
     while(b>0){
      if((b&1)==1)
        res=res*x;
      x=x*x;
      b>>=1;

     }
     
    return res;
    }
}
上一篇:2021.10.11 - JZ16.数值的整数次方


下一篇:每日一题力扣50