题意:求f(x)=p*e^-x+q*sin(x)+r*cos(x)+s*tan(x)+t*x*x+u=0,0<=x<=1
思路二分;
#include<stdio.h>
#include<math.h>
typedef double dd;
int p,q,r,s,t,u;
dd solve(dd x)
{
return p*exp(-x)+q*sin(x)+r*cos(x)+s*tan(x)+t*x*x+u;
}
int main()
{
while(scanf("%d%d%d%d%d%d",&p,&q,&r,&s,&t,&u)!=EOF)
{
if(solve(0)<0||solve(1)>0)
{
printf("No solution\n");
continue;
}
dd mid=0.5,l=0.0,r=1.0;
while(fabs(solve(mid))>=0.00000001)//这里也可也写作while(r-l>=0.00000001)
{
if(solve(mid)>0)
l=mid;
else
r=mid;
mid=(l+r)/2.0;
}
printf("%.4lf\n",mid);
}
return 0;
}