leetcode - 50.Pow(x, n)

    xiaoxiao2021-03-25  57

    Pow(x, n)

    Implement pow(x, n).

    Solution1:

    public double myPow(double x, int n) { if (Double.isInfinite(x)) { return 0; } if (n == 0) return 1; if (n < 0) { n = -n; x = 1 / x; } return (n % 2 == 0) ? myPow(x * x, n / 2) : x * myPow(x * x, n / 2); }

    Solution2:

    public double myPow(double x, int n) { if (n == 0) return 1; if (x == 1) return 1; if (x == -1) { if (n % 2 == 0) return 1; else return -1; } if (n == Integer.MIN_VALUE) return 0; if (n < 0) { n = -n; x = 1 / x; } double ret = 1.0; while (n > 0) { if ((n & 1) != 0) ret *= x; x = x * x; n = n >> 1; } return ret; }
    转载请注明原文地址: https://ju.6miu.com/read-40696.html

    最新回复(0)