【个人训练】(HDU2199)Can you solve this equation?
程序员文章站
2024-03-17 15:22:52
...
纯粹水题。本来想做下放松心情的,结果还是被坑了qaq
重点就是在浮点误差。比较左右的下次就直接上1e-10,别看着题目说1e-4然后给个-5,结果暴wa。气傻了。。。。。
代码
#include <bits/stdc++.h>
#define PB push_back
#define MP make_pair
using namespace std;
#define NQUICKIO
#define NFILE
double xs[]={6,3,2,7,8};
int main()
{
#ifdef QUICKIO
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
#endif
#ifdef FILE
freopen("datain.txt","r",stdin);
freopen("dataout.txt","w",stdout);
#endif
int T; cin>>T;
while(T--)
{
double y; cin>>y;
xs[0]=6-y;
double l=0,r=100;
if(double(6-y)*(807020306-y)>=1e-8) cout<<"No solution!"<<endl;
else
{
do
{
double mid=(l+r)/2;
double ans=0;
for(int i=4;i>=0;--i)
{
ans*=mid;
ans+=xs[i];
}
//cout<<mid<<" "<<ans<<endl;
if(ans<0) l=mid;
else r=mid;
}
while(!(fabs(r-l)<1e-10));// 1e-5 before
cout<<fixed<<setprecision(4)<<(l+r)/2.0<<endl;
}
}
return 0;
}
推荐阅读
-
【个人训练】(HDU2199)Can you solve this equation?
-
HDU 2199 Can you solve this equation? 二分
-
HDU - 2199 Can you solve this equation? (二分)
-
HDU 2199 Can you solve this equation?(二分)
-
HDU -2199 Can you solve this equation?(二分)
-
HDU2199 Can you solve this equation? (二分查找)
-
Can you solve this equation? (HDU-2199)二分查找