Can you solve this equation?
Time limit:2000/1000 MS (java/others) Memory limit:32768/32768 K (java/others)
Total submission (s): 12766 Accepted Submission (s): 5696
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!
#include <stdio.h> #include <string.h>double f (double v)//To calculate the equation result (that is, the value of y) {return 8*v*v*v*v+7*v*v*v+2*v*v+ 3*v+6;} int main () {int t;double y,l,r,mid;scanf ("%d", &t), while (t--) {scanf ("%lf", &y); if (y<f (0) | | Y>f (+)) {printf ("No solution!\n"); continue;} L=0;r=100;mid=0;while ((r-l) > 1e-10)//The topic requires precision of four digits after the decimal point, it is best to increase the accuracy of {mid= (l+r)/2;//each binary take the range of X if (f (mid) < y) L=mid; else R=mid;} printf ("%.4lf\n", mid);}}
Hdoj 2199 Can You solve this equation? "floating-point data dichotomy"