L1-009 N个数求和 (20 分)(C语言)(测试点3和测试点5)
题目
L1-009 N个数求和 (20 分)
本题的要求很简单,就是求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
思路
这道题是一道模拟题,思路上很简单:通分、求和、约分、输出。但是他的一些测试点有点恶心。这里解释一下测试点三和测试点五。
测试点三:由于整形数据存不下可能会出现的长整形数据导致数据泄露从而出错,全部改成长整形数据即可。
测试点五:这里要注意的是求最大公约数时可能会遇到两个数中存在0的情况,此时应该返回那个非零数(由于题目给的是有理数,所以分母不可能为0)。注意:如果测试点五没处理好,那么也可能会导致测试点三错误!!!
另外,符号不一定要在分子上,题目没要求,也没有对应的测试点,亲测!!!
代码
#include<stdio.h>
long long int gcd(long long int a,long long int b)
{return b?gcd(b,a%b):a;
}
int main()
{long long int a,b,c,d;long long int n;scanf("%lld",&n);n--;scanf("%lld/%lld",&a,&b);while(n--){scanf("%lld/%lld",&c,&d);long long int t=b*d/gcd(b,d);a=t/b*a+t/d*c;b=t;t=gcd(a,b);a/=t;b/=t;}long long int zh=a/b;a=a%b;if(zh==0){if(a==0){printf("0");}else{printf("%lld/%lld",a,b);}}else{if(a){printf("%lld ",zh);printf("%lld/%lld",a,b);}else{printf("%lld",zh);}}}
L1-009 N个数求和 (20 分)(C语言)(测试点3和测试点5)相关推荐
- 7-9 N个数求和 (20 分)
7-9 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤ ...
- N个数求和 (20 分)
N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...
- 关于团体程序设计天梯赛-练习集 L1-009 N个数求和 (20 分) 以及测试点三过不了的一些想法
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格式a1/b1 ...
- L1-009 N个数求和 (20分)(分数求和)
N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格 ...
- 5-1 N个数求和 (20分)
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤\le≤100).随后一行按格式a ...
- 天梯赛 L1-009 N个数求和 (20 分)
涉及假分数和负数,因此是分子绝对值与分母比较(分母必正) #include <iostream> #include <cmath> using namespace std;in ...
- N个数求和 (20分)
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格式a1/b1 ...
- 实验4-1-5 统计素数并求和 (20 分)
实验4-1-5 统计素数并求和 (20 分) 本题要求统计给定整数M和N区间内素数的个数并对它们求和. 输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500). 输出格式: 在一行中顺序输 ...
- 实验4-1-7 特殊a串数列求和 (20 分)
实验4-1-7 特殊a串数列求和 (20 分) 给定两个均不超过9的正整数a和n,要求编写程序求a+a**a+aaa++⋯+a**a⋯a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a ...
- 1002 写出这个数 (20 分)
1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...
最新文章
- 直博清华的小姐姐!本科就发表了SCI,享受朝九晚五的学习生活,做自己的小太阳!...
- Sklearn-train_test_split随机划分训练集和测试集
- 一碗面,害了一个孩子,却惊醒了中国无数父母!
- 20210614 什么是状态?什么是状态空间?
- jzoj3084-超级变变变【数学】
- 字符串字母大小写转换
- 使用memcachedclientXmemcached与Spring整合
- gitlab部署、配置更改、备份及恢复
- 擦地机器人排行榜_擦地机器人品牌排行榜来了,你想了解的都在这里
- 哈夫曼树的生成详解(C++)
- 20191219每日一句
- java面向对象是什么意思_java什么是面向对象
- java 有序map_java 有序Map之TreeMap的使用
- C#的get和set用法
- 港中文、佐治亚理工招收AI博士生
- 快搜新爬虫研发的曲折之路,十年磨一剑
- 视觉学习笔记3——复现GSDT,且代码解读
- LOL召唤师信息查询工具(可查服务器、段位、胜点,隐藏分、战斗力)
- 10款精选的后台管理系统,快来一起颤抖吧!
- 豆芽的生长过程观察日记
热门文章
- 南京掌上公交一款好用的手机app
- VMware Workstation 无法连接到虚拟机.....
- 计算机网络技术-Mooc
- java修改文件只读_java修改文件为只读权限
- Microsoft Web Application Stress Tool(WAST)详细设置说明
- React-Native笔记--Debugger and device times had drifted by more than 60s.
- JSONObject 转对象
- ES文件浏览器曝严重漏洞,或影响数亿Android用户
- Cmd Markdown 简明语法手册
- 唯品会顺丰快递面单模板_快递模板