简单粗暴的题解
2025-05-21 18:57:00
发布于:四川
8阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int f(int a, int b){
if(a % b == 0) return b;
return f(b, a % b);
}
int main(){
int n;
cin >> n;
int p[15] = {}, q[15] = {};
for(int i = 1; i <= n; i++) {
scanf("%d/%d", &p[i], &q[i]);
}
int sum = 1, maxn = q[1], t;
for(int i = 1; i <= n; i++){
sum *= q[i];
maxn = max(maxn, q[i]);
}
for(int i = maxn; i <= sum; i++) {
int flag = 1;
for(int j = 1; j <= n; j++) {
if(i % q[j]) {
flag = 0;
break;
}
}
if(flag){
t = i;
break;
}
}
int a = 0, b = t;
for(int i = 1; i <= n; i++){
a += p[i] * (b / q[i]);
}
int c = f(a, b);
int t1 = a / c, t2 = b / c;
if(t1 % t2 == 0) cout << t1 / t2;
else cout << t1 << '/' << t2;
return 0;
}
这里空空如也
有帮助,赞一个