问题:
Implement pow(x, n).
分析:
1、二分法:x^n = x^n/2 * x^n/2 ×*x^n%2。
代码:
class Solution {
public:
double myPow(double x,int n){
//指数为负的情况: 倒数;
if(n<0) return 1.0/Pow(x,-n);
else return Pow(x,n);
}
private:
double Pow(double x,int n){
if(n==0) return 1;
double v=Pow(x,n/2);
//x^n = x^n/2 * x^n/2 ×*x^n%2
if(n%2==0) return v*v;
else return v*v*x;
}
};