2<br>100<br>200
-74.4291<br>-178.8534
所以我们可以发现无论y取什么值,总可以找到x1∈[0, 100],使F'(x1)=0,又因为此时x∈[0, x1]时,函数递减(导函数小于零,原函数递减,反之,递增);x∈[x1, 100]时,函数递增。所以F(x1)便是极小值,也是最小值。综上,先对F'(x)使用二分法即可,最后结果输出F(x)的值即可
#include<iostream>
#include<stdio.h>
#include<cmath>
using namespace std;
double f(double x,long long 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;
cin>>t;
while(t--)
{
double mid=50.0,m=0.0,n=100.0,x,s;
long long y;
cin>>y;
while(fabs(f(mid,y))>1e-5)
{
if((f(mid,y)>0))
{
n=mid;
mid=(m+n)/2;
}
else if(f(mid,y)<0)
{
m=mid;
mid=(m+n)/2;
}
}
x=mid;
s=6*x*x*x*x*x*x*x+8*x*x*x*x*x*x+7*x*x*x+5*x*x-y*x;
cout<<s<<endl;
}
return 0;
}