递归分解成子问题解决:
class Solution {
public double myPow(double x, int n) {
if(n==0) return 1;
if(n>0){
if(n%2==0)
return myPow(x*x,n/2);
else
return myPow(x*x,n/2)*x;
}
if(n<0) {
//必须-(n/2) 不可以-n/2会溢出
//如果n是-2147483648
//-n就是2147483648
//溢出
if(n%2==0)
return 1/myPow(x*x,-(n/2));
else
return 1/myPow(x*x,-(n/2))/x;
}
return 0;
}
}