题意:给公式计算得出比较精确的x的值。
题解:二分法,一直到答案精确到10^-10左右,开始不够精确一直wa.....
#include <stdio.h>
#include <string.h>
#include <math.h>
int p, q, r, s, t, u;
double ans;
double count(double x) {
return (p * exp(-x) + q * sin(x) + r * cos(x) + s * tan(x) + t * x * x + u);
}
void solve(double a, double b) {
double x = (a + b) / 2.0;
double val = count(x);
if (fabs(val) <= 0.0000000001) {
ans = x;
return;
}
if (val > 0)
solve(x, b);
else
solve(a, x);
}
int main() {
while (scanf("%d%d%d%d%d%d", &p, &q, &r, &s, &t, &u) != EOF) {
if (count(0) * count(1) > 0) {
printf("No solution\n");
continue;
}
solve(0, 1);
printf("%.4lf\n", ans);
}
return 0;
}