Problem Descriptionnow,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 = = Y,can you find its solution between 0 and 100 ;
Now try your lucky. Inputthe first line of the input contains an integer T (1<=t<=100) which means the number of test cases. Then T-lines follow, each line has a real number Y (Fabs (Y) <= 1e10); Outputfor Each test case, you should just output one real number (accurate up to 4 decimal places), which is the solution of The Equation,or "No solution!", if there is No solution for the equation between 0 and 100. Sample input2100-4 Sample Output1.6152no solution! The subject involves dichotomy #include <stdio.h>
#include <math.h>
Double ans (double A)//calculation (8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6)
{
return (8*a*a*a*a+7*a*a*a+2*a*a+3*a+6.0);
}
Double ans (double);//Declaration of function
int main ()
{
Double L,r,y,mid;
int N,flag;
scanf ("%d", &n);
while (n--)
{
scanf ("%lf", &y);//l is the left end and R is the right end;
l=0;
flag=0;
r=100;//below is the essence of the two-point method
while (L<R)
{
Mid= (L+R)/2.0;
if (Fabs (mid)-y) <=1e-6)
{
printf ("%.4lf\n", mid);
flag=1;
Break
}
else if (ans (mid)-y>1e-6)
{
R=mid;
}
else if (Y-ans (mid) >1e-6)
{
L=mid;
} }
if (!flag)
printf ("No solution!\n");
}
return 0;
}
Hangzhou Electric 2199. Can you solve this equation?