public class 二分法开根号 {
public static void main(String[] args) {
System.out.println(find(5));
}
public static double find(int n) {
double l = 1;
double r = n;
double mid = (l + r) / 2.0;
double p = 0.1;
while (Math.abs(mid * mid - (double) n) > p) {
if (mid * mid > n) {
r = mid;
} else if (mid * mid < n){
l = mid;
} else {
return mid;
}
mid = (l + r) / 2.0;
}
return mid;
}
} 
京公网安备 11010502036488号