题意:利用函数的单调性求出极值点(二分求),然后输出极值
#include<iostream>
#include<cmath>
using namespace std;
double y;
double get_ans(double x)
{
return 42*pow(x,6.0)+48*pow(x,5.0)+21*x*x+10*x-y;
}
int main()
{
int N;
scanf("%d",&N);
while(N--)
{
scanf("%lf",&y);
double a,b,mid;
a=0,b=100;
while(b-a>1e-7)
{
mid=(a+b)/2.0;
if(get_ans(mid)>0) b=mid-1e-7;
else a=mid+1e-7;
}
printf("%.4f\n",6*pow(mid,7.0)+8*pow(mid,6)+7*pow(mid,3)+5*mid*mid-y*mid);
}
}