Leetcode 50. Pow(x, n)

快速幂来做,注意n是负数的情况,还有n是最小负数的情况

class Solution {
public:
    double myPow(double x, long long n) {
        if (n < 0) return 1 / myPow(x, -n);
        double ans = 1.0;
        while (n) {
            if (n & 1) ans *= x;
            n >>= 1; x *= x;
        }
        return ans;
    }
    double myPow(double x, int n) {
        return myPow(x, (long long)n);
    }
};

猜你喜欢

转载自blog.csdn.net/bendaai/article/details/80163177