Can you solve this equation?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13674 Accepted Submission(s): 6086
#include <iostream> #include <cmath> #include <iomanip> const double p = 0.000001; using namespace std; double calculate(double x,double Y) { return 8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6; } double lookup(double left,double right,double Y) { double mid; while(right - left > p) //二分查找 { mid = (right+left)/2.0; if(calculate(mid,Y) > Y) right = mid; else left = mid; } return mid; } int main() { int T; double Y,right,left; cin>>T; while(T--) { cin>>Y; left = 0; right = 100; if(calculate(left,Y) > Y || calculate(right,Y) <Y) { cout<<"No solution!"<<endl; continue; } else cout<<setiosflags(ios::fixed)<<setprecision(4)<<lookup( left,right, Y)<<endl; } }