题目地址:http://pat.zju.edu.cn/contests/pat-a-practise/1081
主要熟悉long long定义成ll,取最大公约数的方法
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b){
for(int t;t=b;b=a%b,a=t);
return a;
}
ll aa,bb;
int main(){
ll a,b,g;
int n;
aa=0,bb=1;
scanf("%d",&n);
while(n--){
scanf("%lld/%lld",&a,&b);
aa=aa*b+bb*a;
bb=bb*b;
g=gcd(labs(aa),labs(bb));
aa/=g;
bb/=g;
}
if(aa==0){
printf("0");
}
else{
if(aa/bb && aa%bb)printf("%lld %lld/%lld\n",aa/bb,aa%bb,bb);
else if(aa/bb){
printf("%lld\n",aa/bb);
}
else if(aa%bb){
printf("%lld/%lld\n",aa,bb);
}
}
return 0;
}