首页 > 代码库 > hdu 2199 Can you solve this equation?
hdu 2199 Can you solve this equation?
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2199
题目大意:找到满足8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y的x值,注意精确度问题。
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 5 using namespace std; 6 7 8 double fun(double s) 9 {10 return 8*pow(s, 4.0) + 7*pow(s, 3.0) + 2*pow(s, 2.0) + 3*s + 6;11 }12 int main ()13 {14 int t,flag;15 cin>>t;16 while (t--)17 {18 flag=0;19 double x,y,yy,r,l;20 cin>>y;21 if (fun(0)<=y&&fun(100)>=y)22 {23 r=0,l=100;24 while (l-r>1e-6)25 {26 //cout<<r<<endl;27 x=(r+l)/2;28 double yy=fun(x);29 //yy=8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;30 //yy=8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6;31 if (yy>y)32 l=x+1e-7;33 else34 r=x+1e-7;35 36 }37 printf ("%.4lf\n",(r+l)/2);38 //break;39 flag=1;40 }41 else42 {printf ("No solution!\n");flag=1;}43 if (yy==r&&flag==0)44 printf ("%.4lf\n",y);45 else if (flag==0)46 printf ("No solution!\n");47 48 }49 return 0;50 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。