标签:a% gcd 1081 int Sum long Rational 假分数 lld
题意:分数运算,假分数化成真分数
注 :测试数据没测全,有漏洞
#include<iostream>
using namespace std;
int gcd(int a,int b) {
return !b?a:gcd(b,a%b);
}
int main() {
int n;
cin>>n;
long long a,b,f=0;
scanf("%lld/%lld",&a,&b);
int t=gcd(a,b);
a/=t;
b/=t;
f+=a/b;
a%=b;
for(int i=1; i<n; ++i) {
long long c,d;
scanf("%lld/%lld",&c,&d);
t=b;
b*=d;//分母
a=a*d+t*c;//分子
t=gcd(a,b);
a/=t;
b/=t;
f+=a/b;//整数部分
a%=b;
}
if(b<0) {//符号只出现在数字前面,测试点没有这点
b*=-1;
a*=-1;
}
if(!a)
cout<<f;
else if(f)
cout<<f<<" "<<a<<"/"<<b;
else if(a)cout<<a<<"/"<<b;
return 0;
}
江楚郎(已婚 发布了298 篇原创文章 · 获赞 15 · 访问量 1万+ 私信 关注
标签:a%,gcd,1081,int,Sum,long,Rational,假分数,lld 来源: https://blog.csdn.net/qq_40991687/article/details/104094622
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。