#include <stdio.h>
float a3,a2,a1,a0;// 全局变量//
float f(float x);
int main(int argc, char **argv) {
float left, right, a, b, mid;
scanf("%f %f %f %f", &a3,&a2,&a1,&a0);
scanf("%f %f", &a, &b);
left = a;
right = b;
mid = (left+right)/2.0;
while(right-left > 0.01 && f(left)*f(right) <= 0)// 条件是否满足 //
{
if(f(right)==0)
{
printf("%.2f\n",right);
return 0;
}
if(f(left)==0)
{
printf("%.2f\n",left);
return 0;
}
if(f(mid)==0)
{
printf("%.2f\n",mid);
return 0;
} //判断中点和左右俩点是否为0 提前结束此程序 //
if(f(mid)*f(left) > 0)
{
left = mid;
mid = (left+right)/2.0;
}
if(f(mid)*f(right) > 0)
{
right = mid;
mid = (left+right)/2.0;
} //核心部分,二分原理 //
}
printf("%.2f\n",(left+right)/2);
return 0;
}
float f(float x)
{
float f1;
f1=a3*x*x*x+a2*x*x+a1*x+a0;
return f1;
}