二分法求开平方根

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;
}
}

请多指教!

转载于:https://www.cnblogs.com/Javaknowledge/p/10626270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值