首页 > 代码库 > leetcode----------Pow(x, n)

leetcode----------Pow(x, n)

 题目Pow( x, n)
通过率26.2%
难度Medium

Implement pow(xn).

    初步构想:开始拿到题目就以为是简单的求幂运算,一直迭代乘法就可以了,事实证明,想法过于简单!!结果自己给自己挖了个坑,根本没有考虑到数的大小以及溢出的问题,自己默认n为正数了,要注意幂指数为负数的情况是需要转换的。

   注意事项:

       1. 注意幂指数的符号问题(即 n < 0)

       2. 算法优化:采用分治策略,但是要区分n的奇偶性。

 

java代码:

 1 public class Solution { 2     public double pow(double x, int n) { 3         if(n < 0) 4         { 5             if(n == Integer.MIN_VALUE) 6             { 7                  return 1.0 / (pow(x,Integer.MAX_VALUE)*x); 8             } 9             else10             {11                 return 1.0 / pow(x,-n);12             }13         }14         if(n == 0)15         {16             return 1.0;17         }18         double half = pow(x , n/2);19         if(n%2 == 0)20         {21             return half*half;22         }else23         {24             return half*half*x;25         }26     }27 }

   万事开头难啊,开始刷的第一道题就诸多问题,眼高手低的毛病码农界坚决不允许啊,gogogo~~~

 

                                                                                                         2014-12-13

                                                                                                            16:58:55

                                                                                                             软微3202

leetcode----------Pow(x, n)