【题解】(注意y值可能为浮点型)

#include<bits/stdc++.h>
using namespace std;
#define eps 1e-8
double f(double x)
{
return 2018 * pow(x , 4) + 5 * pow(x , 3) + 5 * pow(x , 2) + 21 * x + 14;
}
int main()
{
int T;
cin>>T;
while(T--){
double y;
cin >> y;
double l=0,h=100,m;
while(h-l>eps)
{
m=(l+h)/2;
if(f(m)>y)  h = m;
else l = m;
}
if( f(0)>y || f(100)<y )
cout<<"-1"<<endl;
else printf("%.4lf\n",l);
}
return 0;
}

全部评论

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务