博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2199:Can you solve this equation?
阅读量:6543 次
发布时间:2019-06-24

本文共 1271 字,大约阅读时间需要 4 分钟。

1.HDU2199:Can you solve this equation?(二分)

Problem Description

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.

Input

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);

Output

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.

Sample Input

2 100 -4

Sample Output

1.6152 No solution!

#include "stdafx.h"

#include <iostream>
#include <iomanip>
using namespace std;
int a(double x)
{
return 8 * x*x*x*x + 7 * x*x*x + 2 * x*x + 3 * x + 6;
}
int main()
{
int t = 0;
cin >> t;
while (t--)
{
double n;
cin >> n;
double low = 0.0, high = 100.0;
double mid = (low + high) / 2;
if (a(0) > n || a(100) < n)   // 0-100最小值大于n和最大值小于n时无解
{
cout << "No Solution!" << endl;
continue;
}
while (fabs(a(mid) - n) > 0.00001)     //解的值带进去得出的结果相差必须小于0.00001循环结束
{
if (a(mid) > n)
high = mid;
else
low = mid;
mid = (low + high) / 2;
}
cout << setprecision(5) << mid << endl;
}
return 0;
}

 

转载于:https://www.cnblogs.com/zhangfuxiao/p/9286366.html

你可能感兴趣的文章
grep,egrep使用以及正则表达式的使用
查看>>
implode 和 explode
查看>>
gzip the js and css
查看>>
exchange 2013 提示“HTTP 500内部服务器错误”
查看>>
Linux运维学习笔记之一:运维的原则和学习方法
查看>>
怎样使用原型设计中的组件样式功能
查看>>
python threading
查看>>
谷安天下2013年6月CISA考前辅导 第一季
查看>>
ARM程序规范
查看>>
深深的爱,静静的想
查看>>
LNMP环境出现502 Bad Gateway报错
查看>>
我的友情链接
查看>>
Qt下的OpenGL 编程(8)文字、FPS、动画
查看>>
关于Thread对象的suspend,resume,stop方法
查看>>
linux下IPTABLES配置详解
查看>>
Android开发入门系列
查看>>
最强最全干货分享:Android开发书籍、教程、工具等
查看>>
说清楚讲明白vxlan在openstack中的使用场景
查看>>
RHCE 学习笔记(36) - MariaDB
查看>>
文件删除封装,懒得以后再写了
查看>>