Implement pow(x, n).
divide and conquer method: the running time is O(ln n)
1 public class Solution{ 2 public double pow(double x, int n){ 3 double result = 0; 4 long temp = n; 5 if(temp >= 0) 6 result = power(x, temp); 7 else 8 result = 1.0 / power(x, -1 * temp); 9 10 return result; 11 } 12 13 public double power(double x, long n){ 14 double result = 1; 15 if( n == 0) 16 return 1; 17 if( n == 1) 18 return x; 19 20 //divide-and-conquer 21 result = power(x, n / 2); 22 result *= result; 23 24 //if n is odd 25 if( (n % 2) == 1) 26 result *= x; 27 return result; 28 } 29 }