题意:给出两个数a和b,不断找出两个整数x和y,使他们的商x/y逐渐逼近a/b,y是从1到b。

题解:因为y是从1到b,可以计算出x,然后计算x/y与a/b的差值,让初始差值很大,然后每次差值有减小,就输出这组解。

#include <stdio.h>
#include <math.h>
int a, b;

int main() { 
	int cas = 0;
	while (scanf("%d%d", &a, &b) == 2) {
		double temp = 1 << 30, c = a * 1.0 / b;
		if (cas > 0)
			printf("\n");
		for (int i = 1; i <= b; i++) {
			int j = i * 1.0 * a / b + 0.5;
			if (temp > fabs(j * 1.0 / i - c)) {
				temp = fabs(j * 1.0 / i - c);
				printf("%d/%d\n", j, i);
			}
		}
		cas++;
	}
	return 0;
}