今天偷懒选到简单题写。
这是一道典型的简单的二分法的题。先判断边界条件,然后进行“分”,然后在合并。
坑, 主要都是边界条件:
注意INT_MIN,0,1,负数幂
class Solution {
public:
double myPow(double x, int n) {
if(n==0)
return 1;
if(n==1)
return x;
if(n<0){
if(n==INT_MIN){
return 1.0/(myPow(x, INT_MAX)*x);
}
return 1.0/myPow(x, -n);
}
else{
double t=myPow(x,n/2);
if(n%2==0)
return t*t;
else
return t*t*x;
}
}
};