L1-009. N个数求和

时间限制
400 ms

内存限制
65536 kB

代码长度限制
8000 B

判题程序
Standard

作者
陈越

本题的要求很简单,就是求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

最后结果有多种情况:(找全!!!!)
1.分子/分母 == 0,这里有两种情况,a.分子为0(最后一个测试点) , b.是个分数,直接输出
2.分子/分母 != 0 这里有两种情况, a.是个整数,输出整数 b.输出 “整数 分数形式”

#include "iostream"
#include "cmath"
#include "cstdio"
#include "cstring"
#include "cstdlib"
using namespace std;
#define LL long long
LL gnc(LL a,LL b)
{return b==0?a:gnc(b,a%b);
}
void fun(LL a,LL b,LL &e,LL &f)
{LL fenmu=b*f,fenzi=a*f+e*b;LL gnc1=gnc(fenzi,fenmu);e=fenzi/gnc1;f=fenmu/gnc1;}
int main()
{LL n,a[1000];while(~scanf("%lld",&n)){for(int i=0;i<2*n;i+=2){scanf("%lld/%lld",&a[i],&a[i+1]);}LL e=a[0],f=a[1];for(int i=2;i<2*n;i+=2){fun(a[i],a[i+1],e,f);}if(e/f==0&&e!=0)printf("%lld/%lld\n",e,f);else if(e%f==0)printf("%lld\n",e/f);elseprintf("%lld %lld/%lld\n",e/f,e-(e/f*f),f);}return 0;
}

转载于:https://www.cnblogs.com/kimsimple/p/6485842.html

L1-009. N个数求和相关推荐

  1. n个数求和 java_暴力+辗转相除法——N个数求和

    题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) 题目描述 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须 ...

  2. 0066-若干个数求和问题

    题目 若干个数求和问题 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入若干个整数(不会超过 10000 个),输出它们的和 ...

  3. 1081 n个数求和 (多实例测试)

    n个数求和 (多实例测试) 题目描述 求n个整数的和. 输入 输入第一行是一个整数T,表示有T组测试实例: 每组输入包括两行: 第一行一个数n表示接下来会有n个整数: 第二行空格隔开的n个数. 输出 ...

  4. 7-9 N个数求和 (20 分)

    7-9 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤ ...

  5. N个数求和 (20 分)

    N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...

  6. L1-009 N个数求和 (20分)(分数求和)

    N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格 ...

  7. N个数求和--(PTA天梯赛练习)

    N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...

  8. Java未知个数求和,数字求和

    Java未知个数求和,数字求和 1. 从键盘输入n个数,并完成累加求和输出. 提示: n为输入值.使用Scanner类的nextXXX()方法. 解答: 第一种:n 从键盘输入 import java ...

  9. Python什么是闭包、闭包特征、定义闭包传入一个数求和并输出,定义一个装饰器:打印函数运行花费的时间,定义一个类:要求:包含一个对象属性,且用_(单下划线)命名的定义一个类方法(装饰器)

    1. 闭包.闭包特征及应用 1.1 什么是闭包? 闭包就是外部函数中定义一个内部函数,内部函数引用外部函数中的变量,外部函数的返回值是内部函数; 闭包是由函数及其相关的引用环境组合而成的实体(即:闭包 ...

最新文章

  1. html实现点赞评论功能_html的canvas实现画布功能
  2. java 调用存储过程
  3. Dubbo注册中心宕机
  4. Day11多态部分-5
  5. DNN架构解析(收集)
  6. Base64编码的原理与常用实现
  7. 底量超顶量超级大黑马指标源码_一旦出现底量超顶量形态,是超级大黑马诞生!...
  8. TCP/IP:TCP SYN Flood攻击原理与实现
  9. 《Cracking the Coding Interview》——第3章:栈和队列——题目4
  10. SQL那些事儿(九)--oracle数据库知识体系
  11. 15个数据可视化的绝妙案例
  12. 用透明屏+pH电极做一个pH计
  13. 2020 全国大学生数学建模竞赛C题思路+代码
  14. SPP中Supersession与Item Sourcing Rule的关系
  15. 让我们唠一唠:微信有哪些功能越来越不行了呢?
  16. 我与今目标的爱恨情仇
  17. 桌面PC/服务器 ubuntu18.04 Linux内核编译升级与机制分析
  18. 5个免费PPT素材网站,进来自取
  19. ADAS落地与突围——客运场景如何破解AEB困境?
  20. 微信小程序真机无法发送网络请求or网络错误解决方法

热门文章

  1. Python 标准库之 datetime
  2. docker安装Mysql5.7以及远程登陆链接配置
  3. 【Spring】spring基于纯注解的声明式事务控制
  4. 毕业,新的开始,撸起袖子加油干!
  5. pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
  6. pytorch numpy 数据类型转换
  7. 什么是采样层(pooling)
  8. 2021年大数据Spark(十五):Spark Core的RDD常用算子
  9. MySQL数据库+命令大全+常用操作
  10. Python爬取4399好wan的小游戏!