#include
#include<math.h>
#include
using namespace std;
const double eps=1e-5;
double a,b,c,d;
double l,r,x1,x2;
double f(double x){
return axxx+bxx+cx+d;
}
double twofen(double left,double right){
double mid;
while(right-left>eps){
mid=(left+right)/2;
if(f(mid)>=0){
right=mid;
}
else left=mid;
}
return mid;
}
int main(){
cin>>a>>b>>c>>d;
int s=0;
//枚举区间因为每个根相差》=1在区间一中最多有1个解,解左右两个函数值肯定是异号的
for(int i=-100;i<=100;i++){
l=i;
r=i+1;
x1=f(l);
x2=f(r);
if(!x1){//判断x1是否为0如果x2也判断会输出重复,只是左端点就没问题
printf("%.2f",l);
s++;
if(s<3)printf(" ");
}
else if(x1*x2<0){
printf("%.2f",twofen(l,r));
s++;
if(s<3)printf(" ");
}
if(s==3)break;
}
return 0;
}
1 -4.65 2.25 1.4第二检测点数据应该是二分函数有问题但是我按照基本板子敲的