您的位置:首页 > 其它

【算法导论学习-31】分治法解决同一个数连乘问题

2016-07-10 21:12 302 查看

同一个数连乘问题

今天再看网易公开课上的算法导论,其中提到了这个pow(double x,int n)可以采用分治法。这里实现一下:

/**
* 分治法求解pow(double x,int n)
* 参考:*http://blog.csdn.net/u012162613/article/details/41361655
*
* */
public static double pow(double x, int n) {
if (n == 0) {
return 1.0;
} else if (n < 0) {
if (n == Integer.MIN_VALUE) {
double value = pow(x, -n / 2);
return 1.0 / (value * value);
} else {
return 1.0 / pow(x, -n);
}
} else {
if ((n & 1) == 1) {
return x * pow(x, n - 1);
} else {
double value = pow(x, n / 2);
return value * value;
}
}
}


java中该函数的原型其实是static native double pow(double a, double b),由于指数是double类型,那么底层到底如何实现的呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: