//函数在0——100,肯定是先递减后递增的,所以求导数为0的点,用二分 #include<stdio.h> double y; double F(double x) { return ((6*x+8)*x*x*x*x*x*x+7*x*x*x+5*x*x-y*x); } double f(double x) { return ((42*x+48)*x*x*x*x*x+21*x*x+10*x-y); } int main() { int t; double left,right,mid; scanf("%d",&t); while(t--) { scanf("%lf",&y); left=0.0;right=100.0; while(right-left>=0.0000000001) { mid=(left+right)/2; if(f(mid)<=0)left=mid; else right=mid; } printf("%.4f\n",F(left)); } return 0; }