Implement pow(x, n).
这题真简洁。上来就循环,n个x乘一遍,结果超时了。
其实可以用二分法,x^n = x^(n/2) * x^(n/2) * x^(n%2)
public class Solution {
public double pow(double x, int n) {
double result = powHelper(x, n);
if(n < 0)
result = 1 / result;
return result;
}
public double powHelper(double x, int n){
if(n == 0)
return 1.0;
double w = powHelper(x, n / 2);
if(n % 2 == 0)
return w * w;
else
return w * w * x;
}
}