文章

68

粉丝

691

获赞

153

访问

599.1k

头像
有一些需要注意的点
P1580
发布于2020年5月29日 16:00
阅读数 6.9k

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;
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发