题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2199
本题题意明确,解方程,求解(0,100)是否存在方程的解,二分思想+精度判断(0.0001)
#include<stdio.h>
#include<math.h>
typedef double d;
d m;
d get(d x)
{
return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;
}
d search(d x,d y)
{
d mid;
while(x<y)
{
mid = (x+y)/2;
d ret = get(mid) ;
if(fabs(ret-m)<=0.0001) return mid;
else
{
if(ret>m) y=mid;
else x=mid;
}
}
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%lf",&m);
d t = get(100) ;
if(m>=6&&m<=t) printf("%.4lf\n",search(0,100));
else printf("No solution!\n");
}
}