乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
PAT乙级BasicLevelPractice 1062 最简分数
问题分析
题目给定两个有理数分数形式的分子和分母, 以及一个整数K,
要求给出介于两个有理数之间的最简分数, 且分数的分母得是整数.
因为给定了一个整数作为分母, 我们要查找的范围其实是分子为1到K, 分母为K的K个分数.
完整描述步骤
- 获取输入给定的两个分数的分子和分母: N1, M1, N2, M2
- 获取输入指定的分母值: K
- 检查给定的两个分数的大小:
- 如果 N1 / M1 > N2 / M2: 则交换两个分数的值, 确保N1 / M1 < N2 / M2
- 对于分子i从1到K:
- 对于分数 i / K, 如果 N1 / M1 < i / K < N2 / M2 且 i和K的最大公因子是1,
- 则输出分数 i / K
- 对于分数 i / K, 如果 N1 / M1 < i / K < N2 / M2 且 i和K的最大公因子是1,
伪代码描述
- get input: N1, M1, N2, M2;
- get input: K;
- if N1 / M1 > N2 / M2:
- change value of N1 / M1 and N2 / M2;
- for i in range(1, K):
- if N1 / M1 < i / K <