Sol:求分数的GCD小学生都会。。。注意通分约分就好。
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
inline long long gcd(long long a,long long b)
{
return b==0?a:gcd(b,a%b);
}
inline long long lcm(long long a,long long b)
{
return a/gcd(a,b)*b;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
long long a,b,c,d,n,m,cnt;
scanf("%I64d/%I64d%I64d/%I64d",&a,&b,&c,&d);
a=a*d,c=b*c;
n=lcm(a,c);
m=b*d;
cnt=gcd(n,m);
n/=cnt;
m/=cnt;
if(m==1)
printf("%I64d\n",n);
else
printf("%I64d/%I64d\n",n,m);
}
return 0;
}
本文介绍了一种求两个分数的最小公倍数和最大公约数的方法,并通过通分将两个分数转换为相同分母的形式,进而求得它们的和。代码实现了两个分数相加并化简为最简形式的功能。

431

被折叠的 条评论
为什么被折叠?



