/**
* 1.解题思路:
*
*
*
*
**/
#include <iostream>
using namespace std;
//辗转相除法:求出最大公约数
int gcd(int a, int b){
return b == 0 ? a : gcd(b, a % b);
}
int main() {
int n1, m1, n2, m2, k;
scanf("%d/%d %d/%d %d", &n1, &m1, &n2, &m2, &k);
//如果n1 * m2 > n2 * m1,说明n1/m1比n2/m2大
if(n1 * m2 > n2 * m1) {
//调换n1和n2、m1和m2的位置
swap(n1, n2);
swap(m1, m2);
}
int num = 1;
bool flag = false;
while(n1 * k >= m1 * num) num++;
while(n1 * k < m1 * num && m2 * num < n2 * k) {
if(gcd(num, k) == 1) {
printf("%s%d/%d", flag == true ? " " : "", num, k);
flag = true;
}
num++;
}
return 0;
}
1062 最简分数
最新推荐文章于 2022-10-16 08:00:00 发布