LeetCode - Pow(x, n)

思路

一开始直接交了一发pow(x, n),RE了。

后来按正常的方法写了一发,TLE了。

只能用快速幂

注意处理n < 0的情况。

代码

class Solution {
public:
    double pow(double a, int m)
    {
        if (a == 1) return 1;
        if (a == 0) return 0;
        bool flag = m > 0 ? false : true;
        if (flag) m = -m;
        double ans = 1;
        while (m > 0)
        {
            if (m & 1)
                ans = ans * a;
            a = a * a;
            m >>= 1;
        }
        return flag ? 1 / ans : ans;
    }
};

Powered by Jekyll and Theme by solid