G. Can you solve this equation?
TimeLimit: 1000ms
2017.12.10
64-bitinteger IO format: %I64d Java class name: Main
Now,giventhe equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solutionbetween 0 and 100;
Now please try your lucky.
Input
Thefirst line of the input contains an integer T(1<=T<=100) which means thenumber of test cases. Then T lines follow, each line has a real number Y(fabs(Y) <= 1e10);
Output
Foreach test case, you should just output one real number(accurate up to 4 decimalplaces),which is the solution of the equation,or “No solution!”,if there is nosolution for the equation between 0 and 100.
Sample Input
2
100
-4
Sample Output
1.6152
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
double f(double x);
int t,j;
scanf("%d",&t);
for(j=0;j<t;j++)
{
double y,x=0.0,m,l=100;
scanf("%lf",&y);
if((f(0)-y)*(f(100)-y)>0)
printf("No solution!\n");
else
{
while(fabs(l-x)>0.000001)
{
m=(l+x)/2;
if(f(m)-y>0)
l=m;
else
x=m;
}
printf("%.4lf\n",m);
}
}
return 0;
}
double f(double x)
return 8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6;
Nosolution!