题目链接:点击打开链接
题目:
Implement pow(x, n).
实现x的n次方
思路:第一次采用了快速幂的方法,结果超时了。后来参考别人的答案,选择用递归解决。同时要特别处理n<0的情况,尤其是n=Integer.MIN_VALUE。
代码AC:
public class Solution {
public double myPow(double x, int n) {
if(x == 0)
return 0;
if(x == 1)
return 1;;
if(n == 0)
return 1;
if(n < 0){
if(n == Integer.MIN_VALUE){
++n;
n = -n;
x = 1 / x;
return x*x*(myPow(x*x,n/2));
}
n = -n;
x = 1 / x;
}
return n%2==0?(myPow(x*x, n/2)): x*(myPow(x*x,n/2));
}
}