//1.基本实现方法 递归 时间复杂度O(n)
double pow(int x,int n){
if(n<0)
return 1.0/pow(x, -n);
if(n == 0)
return 1;
if(n == 1)
return x;
if(x==1)
return 1;
return x*pow(x, n-1);
}
2.快速实现 时间复杂度O(log n)
double pow2(int x,int n){
if(n < 0)
return 1.0/pow(x, -n);
if(n == 0)
return 1;
if(n == 1)
return x;
if(x == 1)
return 1;
double half = pow(x, n >> 1);//位运算可以加速除法运算
if((n&1)==0){//偶数
return half*half;
}else{//奇数
return half*half*x;
}
}
未完待续~