https://pintia.cn/problem-sets/994805260223102976/problems/994805268334886912
这题真是坑
测试点1: N2/M2 大于 N1/M1
#include <iostream>
using namespace std;
int gcd(int a, int b){
return (!b) ? a : gcd(b, a%b);
}
int main(){
int a1, b1, a2, b2, k, cnt = 0;
double e1, e2;
scanf("%d/%d %d/%d %d", &a1, &b1, &a2, &b2, &k);
e1 = a1 * 1.0 / b1; e2 = a2 * 1.0 / b2;
for(int i = 1; i < k; i++){
double tmp = i * 1.0 / k;
if((tmp > e1 && tmp < e2) || (tmp < e1 && tmp > e2)){
if(gcd(i, k) == 1){
if(!cnt)
printf("%d/%d", i, k);
else
printf(" %d/%d", i, k);
cnt++;
}
}
}
return 0;
}