题目描述:
Implement pow(x, n).
Example 1:
Input: 2.00000, 10 Output: 1024.00000
Example 2:
Input: 2.10000, 3 Output: 9.26100
解题思路:
pow(x,n)=pow(x,n/2)*pow(x,n/2)
代码:
1 class Solution { 2 public: 3 double myPow(double x, int n) { 4 if(n == 0) 5 return 1.0; 6 else if(n > 0){ 7 double half = myPow(x, n/2); 8 if(n%2 == 0) 9 return half*half; 10 else 11 return half*half*x; 12 } 13 else{ 14 n = -n; 15 double half = myPow(x, n/2); 16 if(n%2 == 0) 17 return 1.0/(half*half); 18 else 19 return 1.0/(half*half*x); 20 } 21 } 22 };