标签:
Implement pow(x, n).
这道题要求完成pow(),即求出x的n次方的结果。
二分法,注意n<0的情况。
1. 若n < 0,则返回 1.0 / pow(x , - n )的结果。
2. 若n >= 0,二分递归求解。例如,求2^5,可以先算2^2=4,2^2=4,然后4*4 = 16,最后16*2=32.
double power(double x, int n){
if (n == 0)
return 1;
double ans = power(x, n / 2);
if (n % 2)
return x*ans*ans;
else
return ans*ans;
}
double myPow(double x, int n) {
if (n < 0)
return 1.0 / power(x, -n);
else
return power(x, n);
}
标签:
原文地址:http://blog.csdn.net/kaitankedemao/article/details/45285985