Implement pow(x, n).
求x的n次方。
递归求解。
算法实现类
public class Solution {
public double myPow(double x, int n) {
if (x == 0 && n == 0) {
throw new IllegalArgumentException();
}
// 指数正负标记
boolean isNegative = false;
// 求n的绝对值
if (n < 0) {
n = -n;
isNegative = true;
}
double result = pow(x, n);
if (isNegative) {
return 1.0 / result;
} else {
return result;
}
}
public double pow(double x, int n) {
if (n == 0) {
return 1;
} else {
double result = pow(x, n / 2);
// n是奇数
if (n % 2 != 0) {
return x * result * result;
} else {
return result * result;
}
}
}
}
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
版权声明:本文为博主原创文章,未经博主允许不得转载。
【LeetCode-面试算法经典-Java实现】【050-Implement pow(x, n)(求x的n次方)】
原文地址:http://blog.csdn.net/derrantcm/article/details/47098373