1 class Solution { 2 public: 3 double pow(double x, int n) { 4 bool sign = false; 5 if (n < 0) { 6 n = -n; 7 sign = true; 8 } 9 double power = x, result = 1.0; 10 while (n > 0) { 11 if (n%2 == 1) { 12 result *= power; 13 } 14 power *= power; 15 n /= 2; 16 } 17 if (sign) return 1/result; 18 return result; 19 } 20 };