题目意思很明了,然后就是按照自己想的把代码写下来咯。
#include<iostream>
#include<queue>
#include<algorithm>
#include<string>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int t1,t2,t3,t4;
char c1;
while(~scanf("%d/%d%c%d/%d",&t1,&t2,&c1,&t3,&t4)){
if(t2!=t4)
{
int T=gcd(t2,t4);
int T1=t2*t4/T;
t1*=(T1/t2);
t3*=(T1/t4);
if(c1=='-')
{
int rt=abs(t1-t3);
int rT=gcd(rt,T1);
if(t1-t3>0)
{
if(rt>=T1&&rt%T1==0)
printf("%d\n",rt/T1);
else
printf("%d/%d\n",rt/rT,T1/rT);
}
else if(t1-t3<0)
{
if(rt>=T1&&rt%T1==0)
printf("-%d\n",rt/T1);
else
printf("-%d/%d\n",rt/rT,T1/rT);
}
else if(t1-t3==0)
printf("0\n");
}
if(c1=='+')
{
int rt=t1+t3;
int rT=gcd(rt,T1);
if(rt>=T1&&rt%T1==0)
printf("%d\n",rt/T1);
else
printf("%d/%d\n",rt/rT,T1/rT );
}
}
if(t2==t4)
{
if(c1=='-')
{
int rt=abs(t1-t3);
int rT=gcd(rt,t2);
if(t1-t3>0)
{
if(rt>=t2&&rt%t2==0)
printf("%d\n",rt/t2);
else
printf("%d/%d\n",rt/rT,t2/rT);
}
else if(t1-t3<0)
{
if(rt>=t2&&rt%t2==0)
printf("-%d\n",rt/t2);
else
printf("-%d/%d\n",rt/rT,t2/rT);
}
else if(t1-t3==0)
printf("0\n");
}
if(c1=='+')
{
int rt=t1+t3;
int rT=gcd(rt,t2);
if(rt>=t2&&rt%t2==0)
printf("%d\n",rt/t2);
else
printf("%d/%d\n",rt/rT,t2/rT );
}
}
}
return 0;
}