#include<iostream>
using namespace std;
long int fun1(long int a, long int b){ //a和b的最大公约数
if (b == 0) return abs(a);
return fun1(b, abs(a) % b);
}
long int fun2(long int a, long int b){ //a和b的最小公倍数
return (a * b) / fun1(a, b);
}
struct num{
long int nu, de;
};
int main(){
int k;
long int m, in;
num temp, res;
cin >> k;
scanf("%lld/%lld", &res.nu, &res.de);
for (int i = 0; i < k - 1; i++){
scanf("%lld/%lld", &temp.nu, &temp.de);
m = fun2(res.de, temp.de);
res.nu = m / res.de * res.nu + m / temp.de * temp.nu;
res.de = m;
m = fun1(res.nu, res.de);
res.nu /= m;
res.de /= m;
}
in = res.nu / res.de;
if (res.nu >= res.de) res.nu = res.nu % res.de;
m = fun1(res.nu, res.de);
res.nu = res.nu / m;
res.de = res.de /m;
if (in != 0){
printf("%lld", in);
if (res.nu != 0) printf(" ");
}
if (res.nu != 0) printf("%lld/%lld", res.nu, res.de);
if (in == 0 && res.nu == 0) printf("0");
}
PAT甲级1081
最新推荐文章于 2021-11-05 16:32:24 发布