要求:不能用幂函数,有负指数
思路:快速幂
class Solution {
public:
double myPow(double x, int n) {
if(n==0)return 1;
double res=1*x;
double rest=1;
double sign=n>0?1:-1;
n=abs(n);
while(n>1){
if(n&1){
rest*=res;
res=res*res;
n=(n-1)/2;
}
else{
res=res*res;
n=n/2;
}
}
return sign>0?res*rest:1/res/rest;
}
};