用二分法recursively的解决这道题 否则会有runtime error
1 class Solution { 2 public double myPow(double x, int n) { 3 if(n == 0) return 1; 4 if(n < 0) { //注意MAX_INT < - MIN_INT 所以不能直接-n 否则会overflow 5 x = 1 / x; 6 return (n % 2 == 0) ? myPow(x * x, -(n / 2)) : x * myPow(x * x, -(n / 2)); 7 } 8 return (n % 2 == 0) ? myPow(x * x, n / 2) : x * myPow(x * x, n / 2); 9 10 } 11 }