题目描述:

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 };

 

 

 

posted on 2018-03-02 16:21  宵夜在哪  阅读(105)  评论(0编辑  收藏  举报