思想:
二分法。
如果n是奇数,x^n = x^(n/2) * x^(n/2) * x ;
如果n是偶数,x^n = x^(n/2) * x^(n/2) ;
class Solution {
public:
//Pow(x, n)
double func(double x, int n) {
if(n == 0) return 1;
double mid = func(x,n/2);
if(n & 0x1) {
return mid*mid*x;
}else {
return mid*mid;
}
}
double myPow(double x, int n) {
if(n < 0) return 1.0/func(x,-n);
else return func(x,n);
}
};