Question:
Implement pow(x, n).
//********** Hints ************
如果用正常recursion会超时,此题可以用对分来处理
//*****************************
Solution:
public class Solution {
public double pow(double x, int n) {
long l = n;
if(l >= 0)
return power(x, l);
else
return 1/power(x, -l);
}
public double power(double x, long l){
if(l == 1)
return x;
if(l == 0)
return 1;
double result = power(x, l>>1);
result *= result;
if((l & 0x1) == 1)
result *= x;
return result;
}
}