Implement pow(x, n).
-----------
实现X^n,用课本的语言说就是分治法X^n = X^(n/2)*X^(n/2)*X^(n%2);
当n为偶数时,X^n = X^(n/2)*X^(n/2) ,【n%2 ==0】;
当n为奇数时,X^n = X^(n/2)*X^(n/2)*X,【n%2 ==1】
考虑一下n为负数的情况。
--------------
时间复杂度O(logn),空间复杂度O(1)
public class Solution {
public double pow(double x, int n) {
if(n<0)
return 1.0/powHelper(x, -n);
return powHelper(x,n);
}
public double powHelper(double x, int n){
if(n==0)
return 1.0;
double db=powHelper(x,n/2);
if(n%2 == 0)
return db*db;
return db*db*x;
}
}