二分法求开平方根


java 实现二分法求开平方根 

思想:通过二分查找不断缩小值的范围,根据精确的位数求的无限接近的平方根。

public static void main(String[] args) {
System.out.println("start: " + new Date().getTime());
double num = 0.16;
double temp = 0;
if(num > 1) {
temp = execute(0, num, num);
} else { // 大于0小于1的值
temp = execute(0, 1, num);
}
System.out.println("end: " + new Date().getTime());
System.out.println(temp);
}

/**
* desc: 二分法计算开平方根
* @param min 最小区间值
* @param max 最大区间值
* @param num 被开平方数
* @return
*/
public static double execute(double min, double max, double num) {
double temp = (min + max) / 2.0; // 求得中间值
if (max-min <= 0.000001) { // 精确的位数
return temp;
} else if (temp * temp > num) { // 判断区间值
return execute(min, temp, num); // 递归调用
} else if (temp * temp < num) {
return execute(temp, max, num);
} else {
return temp;
}
}

请多指教!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM