import java.util.Scanner;
public class Main {
/**
* 循环-08. 二分法求多项式单根
*/
private static double a3;
private static double a2;
private static double a1;
private static double a0;
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
a3 = s.nextDouble();
a2 = s.nextDouble();
a1 = s.nextDouble();
a0 = s.nextDouble();
double a = s.nextDouble();
double b = s.nextDouble();
if (f(a) * f(b) > 0) {
return;
}
double x = cal(a, b);
System.out.printf("%.2f", x);
}
private static double cal(double a, double b) {
if (f(a) == 0) {
return a;
} else if (f(b) == 0) {
return b;
} else if ((b - a) < 0.00001){
return (a + b) / 2;
}
double m = f((a + b) / 2);
if (m == 0) {
return (a + b) / 2;
} else if (m * f(a) > 0) {
a = (a + b) / 2;
return cal(a, b);
} else {
b = (a + b) / 2;
return cal(a, b);
}
}
private static double f(double x) {
double f = a3 * x * x * x + a2 * x * x + a1 * x + a0;
return f;
}
}
循环-08. 二分法求多项式单根
最新推荐文章于 2023-11-04 22:19:24 发布