Description
Now, here is a fuction:
F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)
Can you find the minimum value when x is between 0 and 100.
F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)
Can you find the minimum value when x is between 0 and 100.
Input
The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has only one real numbers Y.(0 < Y <1e10)
Output
Just the minimum value (accurate up to 4 decimal places),when x is between 0 and 100.
Sample Input
2 100 200
Sample Output
-74.4291 -178.8534
#include <cstdio>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
double dao(double x){
return 42 * pow(x, 6)+48*pow(x, 5)+21 * pow(x, 2) + 10* x ;
}
double ans(double x, double y){
return 6 * pow(x, 7)+8*pow(x, 6)+7*pow(x, 3)+5*pow(x,2)-y*x;
}
int main(){
int n;
double y;
double x;
double mid;
cin >> n;
while(n --){
cin >> y;
double f=0.0;
double l=100.0;
if(dao(f)-y>=0)
{
printf("%.4lf\n",ans(f,y));
continue;
}
else if(dao(l)-y<=0)
{
printf("%.4lf\n",ans(l,y));
continue;
}
while(l-f>1e-6)
{
mid=(f+l)/2;
if(dao(mid)-y>=0)
l=mid;
else
f=mid;
}
printf("%.4lf\n",ans((f+l)/2,y));
}
return 0;
}