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;

}

相关推荐
纽扣6671 分钟前
【算法进阶之路】链表进阶:删除、合并、回文与排序全解析
数据结构·算法·链表
消失的旧时光-194319 分钟前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
智者知已应修善业30 分钟前
【51单片机不用数组动态数码管显示字符和LED流水灯】2023-10-3
c++·经验分享·笔记·算法·51单片机
AI进化营-智能译站1 小时前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai
报错小能手1 小时前
好好讲讲移动构造 移动赋值
c++
syker2 小时前
AIFerric深度学习框架:自研全栈AI基础设施的技术全景
开发语言·c++
CS创新实验室2 小时前
从盘边到芯端——硬盘接口七十年变迁史
算法·磁盘调度
xvhao20132 小时前
单源、多源最短路
数据结构·c++·算法·深度优先·动态规划·图论·图搜索算法
MATLAB代码顾问2 小时前
多种群协同进化算法(MPCE)求解大规模作业车间调度问题——附MATLAB代码
开发语言·算法·matlab
FQNmxDG4S3 小时前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法