HDU-2199-Can you solve this equation?【二分】
2016-07-26 11:48
357 查看
Can you solve this equation?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16553 Accepted Submission(s): 7343
[align=left]Problem Description[/align]
Now,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 please try your lucky.
[align=left]Input[/align]
The 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);
[align=left]Output[/align]
For 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.
[align=left]Sample Input[/align]
2
100
-4
[align=left]Sample Output[/align]
1.6152
No solution!
代码一:
#include<cstdio> #include<algorithm> #include<cmath> #define eps 1e-12 using namespace std; double f(double x) { return 8*pow(x,4.0)+7*pow(x,3.0)+2*pow(x,2)+3*x+6; } int main() { int t; scanf("%d",&t); while(t--) { double y,mid,maxn; double l=0.0,r=100.0; scanf("%lf",&y); maxn=8*pow(100.0,4.0)+7*pow(100.0,3.0)+2*pow(100.0,2)+3*100+6; if(y<6||y>maxn) { printf("No solution!\n"); continue; } int size=50; while(size--) //循环次数一定比 50 少 { mid=(l+r)/2.0; if(y<f(mid)) r=mid-eps; //不加 eps 这个精度也能 AC else l=mid+eps; } printf("%.4lf\n",l); } return 0; }
代码二:
#include<cstdio> #include<cmath> double f(double x) { return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6; } int main() { int t,a; scanf("%d",&t); while(t--) { double y,l,r,mid; scanf("%lf",&y); if(y < 6 || y > 8*100*100*100*100+7*100*100*100+2*100*100+3*100+6) printf("No solution!\n"); else { l=0; r=100; a=50; mid=(l+r)/2; while(fabs(f(mid)-y)>1e-5) { if(f(mid) < y) { l=mid+1; } else { r=mid-1; } mid=(l+r)/2; } printf("%.4f\n",mid); } } }
相关文章推荐
- Linux 系统简介
- 回归分析绘图,预测,残差分析
- OpenCV鼠标响应信息
- hbase 权限控制源码分析
- asp.net mvc 未找到路径“/favicon.ico”的控制器或该控制器未实现 IController
- 安装mysql会出现start service错误
- 菜鸟程序员和大神程序员差距在哪里
- Java 实现word 中写入文字图片的解决方案
- Smooth Mouse
- 为JFace(TableViewer,TreeViewer...)创建可直接编辑的DialogCellEditor
- laravel5创建service provider和facade的方法详解
- 找出单独的这些整形数
- ContentProvider数据库共享之——实例讲解
- PyCharm2016.3专业版注册码
- CSDN_MarkDown官方教程
- 转 -- 微信读书iOS性能优化
- git 的ssh key:多个ssh key问题
- Google APAC----Africa 2010, Qualification Round(Problem B. Reverse Words)----Perl 解法
- 挑剔的小杜
- Spark 概念学习系列之Spark相比Hadoop MapReduce的特点(二)