博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分法习题HDU2199
阅读量:7050 次
发布时间:2019-06-28

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

AC代码

#include<iostream>

#include<cmath>
using namespace std;
double y;
double f(double n)
{
return 8*pow(n,4)+7*pow(n,3)+2*pow(n,2)+3*n+6;
}
double find()
{
double mid;
double a,b;
a=0;b=100;
while(b-a>1e-6)
{
mid=(a+b)/2;
if(f(mid)<y)
a=mid+1e-7;
else
b=mid-1e-7;
}
return (a+b)/2.0;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>y;
if(f(0)<=y&&y<=f(100))
printf("%.4lf\n",find());
else
cout<<"No solution!\n";
}

return 0;}

 

/*

在这里一共使用了两个函数,一个用来保存函数的计算结果,这个是值得自己以后参考的东西,尽量自己去模仿、

还有一个就是本题关键的二分法的算法了,下面来仔细分析分析

double find()

{
double mid;
double a,b;//关键是有三个指针起到一个指向作用
a=0;b=100;//开始的指针初始化
while(b-a>1e-6)//这个是程序停止运行的一个必须满足的条件
{
mid=(a+b)/2;
if(f(mid)<y)
a=mid+1e-7;
else
b=mid-1e-7;//取中间值,但是还是有变化的,这个也是非常主要的,没有处理好可能就会陷入一个死循环
}
return (a+b)/2.0;
}

*/

转载于:https://www.cnblogs.com/tianxia2s/p/3851300.html

你可能感兴趣的文章
微信小程序把玩(二十六)navigator组件
查看>>
Visual Studio 2017正式版发布全纪录
查看>>
1520-win10
查看>>
thinkjs——moment.js之前后台引入问题
查看>>
Java 线程内异常处理
查看>>
二:vlan,gre,vxlan
查看>>
静态内部类和非静态内部类的区别
查看>>
C语言 · 栅格打印问题
查看>>
【mysql】备份篇2:使用java程序定期备份mysql数据库
查看>>
BZOJ 4514: [Sdoi2016]数字配对 [费用流 数论]
查看>>
mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法
查看>>
Tooltip浮动提示框效果(掌握里面的小知识)
查看>>
getline函数(精华版)
查看>>
myeclipse debug不显示变量值解决的方法
查看>>
Cygwin-Cygwin ssh Connection closed by ::1 出错
查看>>
SpringMVC工作原理
查看>>
【NLP】文本相似度
查看>>
python模拟Get请求保存网易歌曲的url
查看>>
Gson 解析教程
查看>>
曼-惠特尼U检验Mann–Whitney U Test
查看>>