Implement pow(x, n).
递归解法
double powercore(double base,int ex){
if(ex==0)
return 1;
double res=0;
res=powercore(base,ex/2);
res*=res;
if(ex&1){
res*=base;
}
return res;
}
double Power(double base, int exponent) {
if(exponent==0)
return 1;
bool flag=false;
double e=1e-9;
if(abs(base)<e)
return 0;
if(exponent<0){
exponent=-exponent;
flag=true;
}
double res=powercore(base,exponent);
if(flag)
res=1.0/res;
return res;
}
非递归解法
double myPow(double x, int n) {
int flag=false;
if(n == 0){
return 1;
}
double e=1e-9;
if(abs(base)<e)
return 0;
else if(n < 0){
n = 0- n;
flag=true;
}
double result = 1;
while(n>0){
if(n&1){
result *= x;
}
n>>=1;
x *= x;
}
if(flag)
return 1/result;
return result;
}
















