1081 Rational Sum

#include<iostream>

#include<cstdlib>

using namespace std;

//计算最大共公约数

long long gcp(long long a,long long b){

if(b==0){

return abs(a);

}

return gcp(b,a%b);

}

int main(){

long long n,a,b;

long long suma=0,sumb=1,value;

cin>>n;

for(int i=0;i<n;i++){

char slash;

cin>>a>>slash>>b;//读取分子,"/",分母

//约分当前分数

value=gcp(a,b);

a=a/value;

b=b/value;

//进行分数加法

suma=a*sumb+b*suma;

sumb=b*sumb;

//对结果进行约分

value=gcp(suma,sumb);

suma=suma/value;

sumb=sumb/value;

}

//分离整数和分数

long long integer=suma/sumb;

suma=suma-(sumb*integer);

//输出结果

if(integer!=0){

cout<<integer;

if(suma!=0){

cout<<" ";

}

}

if(suma!=0){

cout<<suma<<"/"<<sumb;

}

if(integer==0&&suma==0){

cout<<"0";

}

cout<<endl;

return 0;

}

相关推荐
AlenTech2 分钟前
141. 环形链表 - 力扣(LeetCode)
数据结构·leetcode·链表
DpHard4 分钟前
现代 C++ 中 push 接口为何提供 const T& 与 T&& 两个重载
c++
U-52184F6924 分钟前
深入理解“隐式共享”与“写时复制”:从性能魔法到内存深坑
java·数据库·算法
pp起床44 分钟前
Part02:基本概念以及基本要素
大数据·人工智能·算法
lzh200409191 小时前
红黑树详解
算法
U-52184F691 小时前
深度解析:从 Qt 的 Q_D 宏说起,C++ 工业级 SDK 是如何保证 ABI 稳定性的
数据库·c++·qt
迈巴赫车主1 小时前
蓝桥杯20560逃离高塔
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
泯仲1 小时前
Ragent项目7种设计模式深度解析:从源码看设计模式落地实践
java·算法·设计模式·agent
dulu~dulu1 小时前
算法---寻找和为K的子数组
笔记·python·算法·leetcode
moonsea02031 小时前
【无标题】
算法