1. public double myPow(double x, int n) {
    2. if (n == 0) {
    3. return 1;
    4. }
    5. if (n < 0) {
    6. // n为负数 -1是因为需要解决溢出问题(Integer.MAX_VALUE), n<0此行代码执行一次 然后n>=0 折半
    7. return 1 / x * myPow(1 / x, -n - 1);
    8. }
    9. return n % 2 == 0 ? myPow(x * x, n / 2) : x * myPow(x * x, n / 2);
    10. }