#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
long long gcd(long long a,long long b){
if(a<0){
a=-a;
}
if(b<0){
b=-b;
}
long long t;
if(a<b){
t=a;
a=b;
b=t;
}
long long n;
while(b){
n=a%b;
a=b;
b=n;
}
return a;
}
void print1(long long num,long long deno){
long long flag=gcd(deno,num);
int temp=0;
num=num/flag;deno=deno/flag;
if((num*deno)<0){
cout<<'(';
temp=1;
}
if(deno<0){
num=-num;
deno=-deno;
}
long long num1=abs(num);
if(num==0){
cout<<0;
}
else if(deno==1){
cout<<num;
}
else if(num1<deno){
cout<<num<<'/'<<deno;
}
else{
long long k=num/deno;
num=num1%deno;
cout<<k<<' '<<num<<'/'<<deno;
}
if(temp){
cout<<')';
}
return ;
}
void Sum(long long a,long long b,long long c,long long d){
long long deno,num,flag;
deno=b*d;
num=a*d+c*b;
print1(a,b);
cout<<' '<<'+'<<' ';
print1(c,d);
cout<<' '<<'='<<' ';
print1(num,deno);
cout<<endl;
return ;
}
void Dif(long long a,long long b,long long c,long long d){
long long deno,num,flag;
deno=b*d;
num=a*d-c*b;
// flag=gcd(deno,num);
// num=num/flag;deno=deno/flag;
print1(a,b);
cout<<' '<<'-'<<' ';
print1(c,d);
cout<<' '<<'='<<' ';
print1(num,deno);
cout<<endl;
return ;
}
void Pro(long long a,long long b,long long c,long long d){
long long deno,num,flag;
deno=b*d;
num=a*c;
// flag=gcd(deno,num);
// num=num/flag;deno=deno/flag;
print1(a,b);
cout<<' '<<'*'<<' ';
print1(c,d);
cout<<' '<<'='<<' ';
print1(num,deno);
cout<<endl;
return ;
}
void Quo(long long a,long long b,long long c,long long d){
if(c==0){
print1(a,b);
cout<<' '<<'/'<<' ';
print1(c,d);
cout<<' '<<'='<<' ';
printf("Inf");
return ;
}
long long deno,num,flag;
deno=b*c;
num=a*d;
// flag=gcd(deno,num);
// num=num/flag;deno=deno/flag;
print1(a,b);
cout<<' '<<'/'<<' ';
print1(c,d);
cout<<' '<<'='<<' ';
print1(num,deno);
return ;
}
int main(){
long long a,b,c,d;
scanf("%lld/%lld%lld/%lld",&a,&b,&c,&d);
// cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
Sum(a,b,c,d);
Dif(a,b,c,d);
Pro(a,b,c,d);
Quo(a,b,c,d);
return 0;
}
1088. Rational Arithmetic (20) PAT
猜你喜欢
转载自blog.csdn.net/chan_yeol/article/details/51541150
今日推荐
周排行