L1-009. N个数求和
L1-009. N个数求和
本题的要求很简单,就是求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个数求和相关推荐
- n个数求和 java_暴力+辗转相除法——N个数求和
题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) 题目描述 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须 ...
- 0066-若干个数求和问题
题目 若干个数求和问题 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入若干个整数(不会超过 10000 个),输出它们的和 ...
- 1081 n个数求和 (多实例测试)
n个数求和 (多实例测试) 题目描述 求n个整数的和. 输入 输入第一行是一个整数T,表示有T组测试实例: 每组输入包括两行: 第一行一个数n表示接下来会有n个整数: 第二行空格隔开的n个数. 输出 ...
- 7-9 N个数求和 (20 分)
7-9 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤ ...
- N个数求和 (20 分)
N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...
- L1-009 N个数求和 (20分)(分数求和)
N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格 ...
- N个数求和--(PTA天梯赛练习)
N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...
- Java未知个数求和,数字求和
Java未知个数求和,数字求和 1. 从键盘输入n个数,并完成累加求和输出. 提示: n为输入值.使用Scanner类的nextXXX()方法. 解答: 第一种:n 从键盘输入 import java ...
- Python什么是闭包、闭包特征、定义闭包传入一个数求和并输出,定义一个装饰器:打印函数运行花费的时间,定义一个类:要求:包含一个对象属性,且用_(单下划线)命名的定义一个类方法(装饰器)
1. 闭包.闭包特征及应用 1.1 什么是闭包? 闭包就是外部函数中定义一个内部函数,内部函数引用外部函数中的变量,外部函数的返回值是内部函数; 闭包是由函数及其相关的引用环境组合而成的实体(即:闭包 ...
最新文章
- html实现点赞评论功能_html的canvas实现画布功能
- java 调用存储过程
- Dubbo注册中心宕机
- Day11多态部分-5
- DNN架构解析(收集)
- Base64编码的原理与常用实现
- 底量超顶量超级大黑马指标源码_一旦出现底量超顶量形态,是超级大黑马诞生!...
- TCP/IP:TCP SYN Flood攻击原理与实现
- 《Cracking the Coding Interview》——第3章:栈和队列——题目4
- SQL那些事儿(九)--oracle数据库知识体系
- 15个数据可视化的绝妙案例
- 用透明屏+pH电极做一个pH计
- 2020 全国大学生数学建模竞赛C题思路+代码
- SPP中Supersession与Item Sourcing Rule的关系
- 让我们唠一唠:微信有哪些功能越来越不行了呢?
- 我与今目标的爱恨情仇
- 桌面PC/服务器 ubuntu18.04 Linux内核编译升级与机制分析
- 5个免费PPT素材网站,进来自取
- ADAS落地与突围——客运场景如何破解AEB困境?
- 微信小程序真机无法发送网络请求or网络错误解决方法
热门文章
- Python 标准库之 datetime
- docker安装Mysql5.7以及远程登陆链接配置
- 【Spring】spring基于纯注解的声明式事务控制
- 毕业,新的开始,撸起袖子加油干!
- pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
- pytorch numpy 数据类型转换
- 什么是采样层(pooling)
- 2021年大数据Spark(十五):Spark Core的RDD常用算子
- MySQL数据库+命令大全+常用操作
- Python爬取4399好wan的小游戏!