文章
68
粉丝
691
获赞
153
访问
599.1k
int main() {
while (cin >> a >> b >> c >> d) {
double res = -inf;
for (int i = -100; i < 100; i++) {
if (f(i) == 0)//如果是0可以直接输出
printf("%.2lf ", 1.0*i);
if (f(i) * f(i + 1) < 0) {//上面讨论了0的情况,这里只考虑小于
double l = i, r = i + 1;
while (r - l >= 0.001) {//保留两位,这里阈值为3位
double mid = (l + r) / 2;
if (f(mid)*f(r) > 0)r = mid;
else l = mid;
}
printf("%.2lf ", r);
}
}
cout << endl;
}
}
登录后发布评论
暂无评论,来抢沙发