#include <iostream>
using namespace std;
long long gcd(long long a, long long b)
{
long long r;
while (b > 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
long long lcm(long long a, long long b)
{
return a / gcd(a, b) * b;
}
int main()
{
int n;
cin >> n;
long long a1 = 0, b1 = 1, a2, b2;
long long multiple, factor;
for (int i = 0; i < n; i++)
{
cin >> a2;
getchar();
cin >> b2;
multiple = lcm(b1, b2);
a1 *= multiple / b1;
a2 *= multiple / b2;
a1 += a2;
b1 = multiple;
factor = gcd(a1, b1);
a1 /= factor;
b1 /= factor;
if (a1 == 0)
b1 = 1;
}
if (a1 == 0)
cout << 0;
else
{
if (a1 / b1 != 0)
{
cout << a1 / b1;
a1 %= b1;
if (a1 != 0)
cout << " ";
}
if (a1 != 0)
cout << a1 << "/" << b1;
}
cout << endl;
}PAT (Advanced) 1081. Rational Sum (20)
最新推荐文章于 2018-11-08 15:48:49 发布
本文介绍了一种计算两个整数的最大公约数和最小公倍数的高效算法,通过循环和取余操作实现。该算法不仅适用于初学者理解,也适用于在实际编程中提高效率。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
GPT-SoVITS
AI应用
GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

2703

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



