【问题描述】用二分法求方程e^x+10x-2=0在区间[0, 1]上的近似根
【输出形式】要求误差不超过0.5e^-3
【样例输入】
【样例输出】0.25 1.784025
【样例说明】0.25:x的近似值,1.784025:e^x+10x-2的值。(有效数字位数较多时,保留小数点后至少5位)
【评分标准】
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define ll long long
const int maxn = 200005;
const int INF = 0x3f3f3f;
const double esp = 0.5e-3;
double l,r,mid;
double fy(double x) {
return exp(x) + 10 * x - 2;
}
int main() {
l = 0, r = 1;
while(abs(l-r) > esp) {
mid = (l+r)/2.0;
if(fy(l) * fy(mid) < 0) {
r = mid;
}
else if(fy(mid) * fy(r) < 0) {
l = mid;
}
}
printf("%.5lf %.5lf\n",l,fy(l));
}