考察点:递归,二分法;
思路:这道题是求幂的递归,二分的经典例题。其中如果int为INT_MIN,这个需要特殊对待。
C++代码:
class Solution {
public:
double myPow(double x, int n) {
if (n == 0 )
return 1.0;
if(n == INT_MIN)
{
return myPow(x, -INT_MAX) * 1/x;
}
if (n < 0){
n = -n;
x = 1.0 / x;
}
return n%2==0? myPow(x*x,n/2) : x * myPow(x*x, (n)/2);
}
};