标签:
Implement pow(x, n).
Analyse: Be aware of corner cases. For exmaple, x = 0, n = 0, n = 1, and n < 0. Note the highlited area, if n == INT_MIN, we have to use braces to ensure the correctness.
Runtime: 4ms.
1 class Solution { 2 public: 3 double myPow(double x, int n) { 4 if(!x) return 0.0; 5 if(!n) return 1.0; 6 if(n == 1) return x; 7 8 if(n < 0) { 9 double temp = myPow(1 / x, -(n / 2)); 10 return temp * temp * myPow(1 / x, -(n % 2)); 11 } 12 else{ 13 double temp = myPow(x, n / 2); 14 return temp * temp * myPow(x, n % 2); 15 } 16 } 17 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/5755137.html