1062 最简分数 解题代码测试结果问题整理 解题代码 #include<cstdio> #include<cmath> #include<algorithm> using namespace std; int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } int main() { int a1, a2, b1, b2, c; scanf("%d/%d %d/%d %d", &a1, &a2, &b1, &b2, &c); a1 = (int)(round(1.0 * a1 / a2 * c + 0.5)); b1 = (int)(floor(1.0 * b1 / b2 * c - 0.000000001)); if (a1 > b1) swap(a1, b1); bool flag = false; for (int i = a1; i <= b1; i++) { if (gcd(c, i) == 1) { if (!flag) flag = true; else printf(" "); printf("%d/%d", i, c); } } return 0; } 测试结果 问题整理 1.基础题目。 2.至于怎么取整,为何取整,要有明确的思路。