思路:
二分求值是否满足。
#include <iostream>
#include <stdio.h>
#include <cmath>
#define exp 1e-15
using namespace std;
double Y;
double judge(double x)
{
double num=x*8*x*x*x + 7*x*x*x + 2*x*x + 3*x + 6;
return num;
}
int main()
{
int n;
cin>>n;
while(n--)
{
cin>>Y;
double l=0,r=100;
double mid;
int flag=0;
if(Y<6)
{
printf("No solution!\n");
continue;
}
while(r-l>exp)
{
mid=(l+r)/2;
//mid=1.61515;
double tep=judge(mid);
if(fabs(tep-Y)<=0.00001)
{
flag=1;
printf("%.4lf\n",mid);
break;
}
if(tep>Y)
r=mid;
else
l=mid;
}
if(!flag)
printf("No solution!\n");
}
return 0;
}