Implement pow(x, n).
思路:当n是正数时 当n是偶数等于half*half 当n是奇数时等于half*half*x;
当n是负数时,处理成正数,用1除就行了,注意边界当n等于Integer.MINVALUE时要特殊处理
代码如下(已通过leetcode)
public class Solution {
public double myPow(double x, int n) {
if(n==0) return 1.0;
if(n<0) {
if(n==Integer.MIN_VALUE) {
return 1.0/myPow(x, -n-1)*x;
}
else return 1.0/myPow(x,-n);
};
double half=myPow(x, n>>1);
if(n%2==0) return half*half;
else return half*half*x;
}
}