- 问题描述
Implement pow(x, n). - 解决思路
快速幂,但要考虑n为负数的情况。 - 代码
class Solution {
public:
double myPow(double x, long long n) {
if (fabs(x) < 0.000001)
return 0;
else if (fabs(x-1) < 0.000001)
return 1;
if (n < 0)
return 1/myPow(x,-n);
if (n == 0)
return 1;
else if (n == 1)
return x;
double tmp = myPow(x,n/2);
if (n % 2 == 1)
return tmp*tmp*x;
else
return tmp*tmp;
}
};