【LeetCode】50. Pow(x, n)

来源:互联网 发布:房地产签单客源软件 编辑:程序博客网 时间:2024/05/15 13:01

题目描述

Implement pow(x, n).

解题思路

快速幂。
注意一下当n为负数的情况。
还有当nINT_MIN时的边界情况,因为此时-n会溢出。

AC代码

class Solution {public:    double myPow(double x, int n) {        bool isMin = false;        if (n < 0) {            x = 1 / x;            if (n == INT_MIN) {                n = INT_MAX;                isMin = true;            }            else                n = -n;        }        double ans = 1;        while (n != 0) {            if (n & 1) {                ans *= x;            }            x *= x;            n >>= 1;        }        if (isMin)            return abs(ans);        return ans;    }};
0 0
原创粉丝点击