团体程序设计天梯赛-练习集 L1-009. N个数求和 解题报告
来源:互联网 发布:淘宝店铺修改店名 编辑:程序博客网 时间:2024/06/05 20:16
题目链接https://www.patest.cn/contests/gplt/L1-009
L1-009. N个数求和
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式。
输入格式:
输入第一行给出一个正整数N(<=100)。随后一行按格式“a1/b1 a2/b2 ...”给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。
输出格式:
输出上述数字和的最简形式 —— 即将结果写成“整数部分 分数部分”,其中分数部分写成“分子/分母”,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。
输入样例1:52/5 4/15 1/30 -2/60 8/3输出样例1:
3 1/3输入样例2:
24/3 2/3输出样例2:
2输入样例3:
31/3 -1/6 1/8输出样例3:
7/24
#include<stdio.h>#include<math.h>int main(){ int n; scanf("%d",&n); long long a,b; scanf("%lld/%lld",&a,&b); long long x=a; long long y=b; int flag=0; if(x<0){x=-x;flag=1;} int min=x>y?y:x; for(int i=sqrt(min);i>1;i--) { if(x%i==0&&y%i==0) { x=x/i; y=y/i; } } if(flag)x=-x; n=n-1; while(n--) { scanf("%lld/%lld",&a,&b); x=x*b+a*y; y=y*b; flag=0; if(x<0){x=-x;flag=1;} min=x>y?y:x; for(int i=sqrt(min);i>1;i--) { if(x%i==0&&y%i==0) { x=x/i; y=y/i; } } if(flag)x=-x; } if(x<0) { printf("-"); x=-x; } if(x%y==0)printf("%lld",x/y); else if(x/y==0)printf("%lld/%lld",x,y); else printf("%lld %lld/%lld",x/y,x%y,y); return 0; }
1 0
- 团体程序设计天梯赛-练习集 L1-009. N个数求和 重载+运算符 解题报告
- 团体程序设计天梯赛-练习集 L1-009. N个数求和 解题报告
- 团体程序设计天梯赛-练习集 L1-009. N个数求和 重载+运算符 解题报告
- 团体程序设计天梯赛-练习集L1-009. *N个数求和
- 团体程序设计天梯赛 L1-009. N个数求和
- L1-009. N个数求和-PAT团体程序设计天梯赛GPLT
- 团体程序设计天梯赛-练习集 L1
- 天梯赛 L1-009. N个数求和
- 团体程序设计天梯赛-练习集 L2-009. 抢红包 解题报告
- 团体程序设计天梯赛-练习集 L3-007. 天梯地图 最短路 dijkstra 解题报告
- 团体程序设计天梯赛-练习集L1-001. Hello World
- 团体程序设计天梯赛-练习集L1-002. 打印沙漏
- 团体程序设计天梯赛-练习集L1-003. 个位数统计
- 团体程序设计天梯赛-练习集L1-004. 计算摄氏温度
- 团体程序设计天梯赛-练习集L1-006. 连续因子
- 团体程序设计天梯赛-练习集L1-007. 念数字
- 团体程序设计天梯赛-练习集L1-010. 比较大小
- 团体程序设计天梯赛-练习集L1-011. A-B
- android.os.handler相关知识整理
- 【DOCKER】走进DOCKER,神奇的环境隔离
- android Picasso使用详解
- css阻塞,js阻塞
- bzoj1077: [SCOI2008]天平
- 团体程序设计天梯赛-练习集 L1-009. N个数求和 解题报告
- 理解RESTful架构
- Mysql主从配置,实现读写分离
- 前端开发-移动端(2)- 自适应屏幕
- Java Web1
- 安装SQL SERVER 2012失败,出现"."(十六进制0x00)是无效的字符,解决办法
- overflow: hidden; 用处
- sql语句
- Leetcode-543. Diameter of Binary Tree