比赛 防止浮躁的小练习v0.2 评测结果 AAAAAAAAAA
题目名称 比例简化 最终得分 100
用户昵称 KZNS 运行时间 0.002 s
代码语言 C++ 内存使用 0.29 MiB
提交时间 2016-10-08 09:58:59
显示代码纯文本
//KZNS
#include <cstdio>
using namespace std;
void upd(double &u) {
	int h = u;
	u = h + ((u-h > 0)?1:0);
}
int gcd(int a, int b) {
	if (b)
		return gcd(b, a%b);
	return a;
}
int main() {
	freopen("ratio.in", "r", stdin);
	freopen("ratio.out", "w", stdout);
	double a, b, z;
	int L;
	scanf("%lf %lf", &a, &b);
	scanf("%d", &L);
	int aa, bb;
	double ca = 1000000000;
	double u;
	z = a/b;
	for (int i = 1; i <= L; i++) {
		u = a/b*i;
		upd(u);
		if (u > L)
			break;
		if (gcd(u, i) > 1)
			continue;
		if (u/i - z < ca) {
			ca = u/i - z;
			aa = u;
			bb = i;
		}
	}
	printf("%d %d\n", aa, bb);
	return 0;
}
//UWBH