@Test
public void Sprt2() {
double num = 2 ;
double left = 0 ;
double right = num ;
double ans = SprtFunction1(left , right , num) ;
System.out.println(ans);
}
/**
* 迭代
*/
public double SprtFunction1(double left , double right , double target) {
double mid = (left + right) / 2 ;
while(mid - left > 0.001) {
if (mid * mid > target) {
right = mid ;
}else {
left = mid ;
}
mid = (left + right) / 2 ;
}
return mid ;
}
/**
* 递归
*/
public double SprtFunction2(double left , double right , double target) {
double mid = (left + right) / 2 ;
if(mid - left < 0.001) {
return mid ;
}
if (mid * mid > target) {
return SprtFunction2(left , mid , target) ;
} else {
return SprtFunction2(mid , right , target) ;
}
}
二分法计算根号2
于 2020-02-28 18:03:48 首次发布