用的二分全超时!求帮看看!!
查看原帖
用的二分全超时!求帮看看!!
574873
Yin_haoran233楼主2022/1/9 19:47
#include <stdio.h>
#include <math.h>
int a, b, c;
double out(double x) {
	double g = x, sum = 0;
	for (int i = 0; i < c; i++) {
		sum += b / x;
		x *= g;
	}
	sum -= a;
	return sum;
}
int main () { //减函数
	scanf("%d %d %d", &a, &b, &c);
	double l = 0, r = 1000;
	while (abs(l - r) > 0.00001) {
		double m = (l + r) / 2;
		if (out(r)*out(l) < 0) {
			if (out(l)*out(m) < 0)r = m;
			if (out(r)*out(m) < 0)l = m;
		} else if (out(r) == 0) {
			printf("%.1lf", (r - 1) * 100);
			break;
		} else if (out(l) == 0) {
			printf("%.1lf", (l - 1) * 100);
			break;
		} else if (out(m) == 0) {
			printf("%.1lf", (m - 1) * 100);
			break;
		}
	}
	printf("%.1lf", (l-1) * 100);
	return 0;
}

求帮看看,为啥全超时了

2022/1/9 19:47
加载中...