首页 > 代码库 > leetcode----------Pow(x, n)
leetcode----------Pow(x, n)
题目 | Pow( x, n) |
通过率 | 26.2% |
难度 | Medium |
Implement pow(x, n).
初步构想:开始拿到题目就以为是简单的求幂运算,一直迭代乘法就可以了,事实证明,想法过于简单!!结果自己给自己挖了个坑,根本没有考虑到数的大小以及溢出的问题,自己默认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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。