二分求零点
这个很简单的啊
LA 10341
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<queue>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
#define F(x) (p*exp(-x)+q*sin(x)+r*cos(x)+s*tan(x)+t*(x)*(x)+u)
const double eps = 1e-14;
const int maxn = 100000;
int main()
{
int p,q,r,s,t,u;
while(scanf("%d%d%d%d%d%d",&p,&q,&r,&s,&t,&u) == 6){
double L = 0.0,R = 1.0;
if(F(L) < -eps||F(R) > eps){
printf("No solution\n");
}else{
double m;
while(R-L > eps){
m = L+(R-L)/2;
if(F(m) <0) R = m;
else L = m;
}
printf("%.4lf\n",L);
}
}
return 0;
}

浙公网安备 33010602011771号