http://acm.hdu.edu.cn/showproblem.php?pid=2899
在[0,100]上F’x单调增 所以求F’(x0)=0 将x0代入F(x) 即为答案
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
const double res=1e-6;
double ans(double x,double y)
{
return 6*x*x*x*x*x*x*x+8*x*x*x*x*x*x+7*x*x*x+5*x*x-x*y;
}
double ans2(double x, double y)
{
return 42*x*x*x*x*x*x+48*x*x*x*x*x+21*x*x+10*x-y;
}
int main()
{
int t,n;
cin>>t;
while(t--)
{
cin>>n;
double l,r;
l=0.0;r=100.0;
double mid=50.0;
while(fabs(ans2(mid,n))>res)
{
if(ans2(mid,n)>0)
{
r=mid;
mid=(l+r)/2;
}
else if(ans2(mid,n)<0)
{
l=mid;
mid=(l+r)/2;
}
}
printf("%.4lf\n",ans(mid,n));
}
}