hdu.. 基础二分的精度问题
#include<stdio.h>
#include<iostream>
using namespace std;
double f(double x)
{
return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;
}
int main()
{
int t,flag;
double y,i,j,mid;
cin>>t;
while(t--)
{
i=0.0;
j=100.0;
cin>>y;
if(y<f(0.0)||y>f(100.0))
{
cout<<"No solution!"<<endl;
continue;
}
while(j-i>1e-10)// 这里是重点 对一个函数取值范围不断缩小 然后就得讨论精度问题了
{
mid=(i+j)/2;
if(f(mid)>y) j=mid;
else i=mid;
}
printf("%.4f\n",i);
}
return 0;
}