Java利用二分法开根号
package com.sankuai.ead.urm.dao.ext;
public class Test {
static double r;
public static void sqrt(double number) {
process(number, 0, number);
}
private static void process(double number, double min, double max) {
double mid = min + (max - min) / 2;
double result = mid * mid;
if (Math.abs(result - number) <= 0.001) {
r = mid;
return;
}
if (result > number) {
max = mid;
} else {
min = mid;
}
process(number, min, max);
}
public static void main(String[] args) {
sqrt(16);
System.out.println(r);
}
}