Problem 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.
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 <iostream> #include <cstdio> #include <cstring> #include <string> #include <queue> #include <cmath> #include <algorithm> using namespace std; #define eps 1e-9 double f(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() { //freopen("in.txt","r",stdin); int t; double y; double mid,midmid; double left,right; cin>>t; while(t--) { cin>>y; left=0;right=100;; while(left+eps<right) { mid=(left+right)/2; midmid=(mid+right)/2; if(f(mid,y)<f(midmid,y)) right=midmid; else left=mid; } printf("%.4lf ",f(mid,y)); } return 0; }