本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。

输入格式:

输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 ...给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。

输出格式:

输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。

输入样例1:

5
2/5 4/15 1/30 -2/60 8/3

输出样例1:

3 1/3

输入样例2:

2
4/3 2/3

输出样例2:

2

输入样例3:

3
1/3 -1/6 1/8

输出样例3:

7/24
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;long long gcd(long long a,long long b)//求最大公约数
{if(a==0)return 0;elsereturn (b==0)?a:gcd(b,a%b);
}int main()
{int n;cin>>n;long long lcp,a,b,c,d;scanf("%lld/%lld",&a,&b);int t0=gcd(a,b);if(a){a/=t0;b/=t0;}int i=1;while(i<n){scanf("%lld/%lld",&c,&d);lcp=b/gcd(b,d)*d;a=a*lcp/b+c*lcp/d;b=lcp;int t0=gcd(a,b);if(t0!=0){a=a/t0;b=b/t0;} i++;}if(a&&a/b==0)printf("%lld/%lld\n",a%b,b);else if(a%b==0) printf("%lld\n",a/b);elseprintf("%lld %lld/%lld\n",a/b,a%b,b);return 0;
} 

PTA n个分数相加相关推荐

  1. 【C++实验】类和对象(两个分数相加并且化简)

    类和对象进一步讨论 面向对象程序设计中的几个名词: st1是对象 display()是方法 st1.dispaly()是消息 构造函数:对类的成员进行初始化(为对象分配内存) 带参数/使用默认参数的构 ...

  2. c语言结构体求分数和,C语言 定义一个表示分数的结构体,并求两个分数相加之和...

    满意答案 正义使者_AYY 2014.08.20 采纳率:53%    等级:8 已帮助:711人 //结构定义中包含两个成员,分子和分母 struct fraction { int up, down ...

  3. 分数在c语言程序中怎么输入,如何在c语言中实现分数相加,以分数形式输出,并化为最简...

    完整的C程序: #include "stdio.h" /* 分数结构 */ typedef struct { int numerator;/* 分子 */ int denomina ...

  4. C语言分数相加并将最后结果化为最简分式(新手程序!!!)

    [问题描述]输入两个分数,对两个分数相加求和,要求和为最简分式.(两个分数为正数) [输入形式]3/24,5/36 [输出形式]19/72 [样例输入]1/7,4/21 [样例输出]1/3 源代码如下 ...

  5. C++面向对象程序设计习题1:分数相加

    C++面向对象程序设计习题1:分数相加 自从学习了C++面向对象编程相关基础语法后,苦于没有相应的习题来练习,偶然遇到了大佬华师数据学院·王嘉宁分享的50道习题,比较基础,但是确实会给我这样的初学者一 ...

  6. 【我与bug那些事】Vue 点击选项(有相应分数)实现分数相加【思路】

    点击选项(有相应分数)实现分数相加[思路] test 里面的da 为 相应分数~forEach 因为是要实现数值发生变化时,在页面上DOM同步更新~所以可能会用到计算属性

  7. PAT甲级 1081 Rational Sum 分数相加的和

    代码如下: //求分数相加的和 #include<iostream> #include<stdio.h> #include<math.h> using namesp ...

  8. 1. 定义分数类Rational,要求在private部分用整数表示分子和分母,分子和分母以简化形势表示。即24/36表示成2/3的形式,并提供public成员函数实现如下功能: 2. 两个分数相加,

    定义分数类Rational,要求在private部分用整数表示分子和分母,分子和分母以简化形势表示.即24/36表示成2/3的形式,并提供public成员函数实现如下功能: 两个分数相加,结果表示为简 ...

  9. C语言程序设计-现代方法 第二版 第3.2.3小节 分数相加

    第3.2.3小节 分数相加.举例说明scanf函数的模式匹配能力 ,本例程实现两个分数相加 //This is a comment //Author:King //Time:2020/12/4 //R ...

最新文章

  1. SW6206超级华为快充5V5A,全协议OPPO闪充、自带电量计量、LED 灯/数码管显示
  2. 关键词与关键词之间的相关度计算
  3. Google Chrome 调试JS利器
  4. Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
  5. 第十章 某些算法的分治法解释
  6. halcon Bit图位像素处理算子,持续更新
  7. 中位数及带权中位数问题(转)
  8. bzoj千题计划174:bzoj1800: [Ahoi2009]fly 飞行棋
  9. 改2字节将Win XP Home变成Pro?!(zz)
  10. NameNode DataNode
  11. android c callstack,[MTK] 如何在android native code 打callstack
  12. 计算机应用研究英文稿,英文文摘要编写要求
  13. 查看计算机软件配置,最齐全的查看电脑配置指令集锦 查看电脑配置软件推荐【图文】...
  14. Qt编写自定义控件68-IP地址输入框
  15. excel公式编辑器_七款编辑器/笔记工具推荐
  16. Burg法求解AR(p)模型参数(一)自回归模型
  17. 瑞芯微RK3328硬件设计指南
  18. [教你做小游戏] 《五子棋》怎么判断输赢?你能5分钟交出代码吗?
  19. 人机对战之取火柴游戏
  20. Azure BareMetal 裸金属

热门文章

  1. 微信小游戏和小程序的区别
  2. 使用纯css做一个播放器
  3. 大脑构造图与功能解析_大脑的结构与功能
  4. 计算机入门模拟考试C,计算机入门模拟卷C.doc
  5. 微动开关技术知识-微动开关概要
  6. 基于springboot校园志愿者管理系统设计与实现的源码+文档
  7. Github Actions Self-Hosted 本地运行Actions
  8. Faraday:微博广告分层实验平台架构
  9. 字节跳动 校招薪资曝光,老员工被倒挂疯了~
  10. matlab ax=b x=,matlab 求解 Ax=B 时所用算法