35(50) 数值的整数次方

实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。

示例 1:

输入:x = 2.00000, n = 10
输出:1024.00000

示例 2:

输入:x = 2.10000, n = 3
输出:9.26100

示例 3:

输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25

提示:

  • -100.0 < x < 100.0
  • -231 <= n <= 231-1
  • n 是一个整数
  • -104 <= xn <= 104

题解

class Solution {
public:
    double myPow(double x, int n) {
        long long b = n;
        double res = 1.0;
        while(b){
            if(b<0){
                x=1/x;
                b=-b;
            }
            //按位与判断
            if( b&1 == 1){
                res=res*x;
            }
            x=x*x;
            b>>=1; //右移即删除最后一位
        }
        return res;
    }
};