代码:
#include<bits/stdc++.h>
using namespace std;
int m1,z1,m2,z2,zd,zx,s1,s2,f1,f2,c,da;
int main()
{
cin>>z1>>m1; //分子1和分母1
cin>>z2>>m2; //分子2和分母2
zd=__gcd(m1,m2); //求两个分母的最大公因数来求最小公倍数
zx=m1*m2/zd; //两数相乘除以它们的最大公因数等于最小公倍数
s1=zx/m1; //求分数1需要乘多少等于最小公倍数
s2=zx/m2; //求分数2需要乘多少等于最小公倍数
f1=z1*s1; //求通分后的分子1
f2=z2*s2; //求通分后的分子2
c=f1-f2; //求答案的分子(分子相减)
da=__gcd(zx,c); //求答案分子分母的最大公因数(用于约分)
zx=zx/da; //分母约分
c=c/da; //分子约分
cout<<c<<" "<<zx; //输出分子和分母
return 0;
}
注释比较多,希望大家理解好代码。