问题描述:
Implement pow(x, n).
问题分析:
对一个数求幂运算,我们可以把它的幂分解开来,利用二分法,降低时间复杂度。
过程详见代码:
class Solution {
public:
double myPow(double x, int n) {
return myPow2(x, n);
}
double myPow2(double x, long long n) {
if (n == 0) return 1;
if (n < 0)
{
x = 1 / x;
n = -n;
}
if (n & 1) return x * myPow(x * x, n / 2);
else return myPow(x * x, n / 2);
}
};