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

代码如下

#include <stdio.h>
int gcd(long long int p, long long int q)
{if (p%q == 0){return q;}elsereturn gcd(q, p%q);
}int main()
{long long int a, b,suma = 0, sumb = 1,m;int n, i;scanf("%d", &n);for (i = 0; i < n; i++){scanf("%lld/%lld", &a, &b);suma *= b;//分子乘以第二个分式的分母suma = (suma + a*sumb);//分子的和sumb *= b;//分母通分m = gcd(suma, sumb);//约去公约数`在这里插入代码片`suma /= m;sumb /= m;}if (suma&&(suma/sumb==0))printf("%lld/%lld\n", suma, sumb);else if (suma%sumb==0)printf("%lld\n", suma / sumb);else{printf("%lld %lld/%lld\n",suma/sumb,suma%sumb,sumb);}
}

gcd函数采用的辗转相除法,这样做的好处是,不需要管理传入参数p和q的大小,例如6/9进入循环后会自己反转变为9/6.

L1-009 N个数求和 (20分) C语言相关推荐

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

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

  2. N个数求和 (20 分)

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

  3. 关于团体程序设计天梯赛-练习集 L1-009 N个数求和 (20 分) 以及测试点三过不了的一些想法

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

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

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

  5. 5-1 N个数求和 (20分)

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

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

    涉及假分数和负数,因此是分子绝对值与分母比较(分母必正) #include <iostream> #include <cmath> using namespace std;in ...

  7. N个数求和 (20分)

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

  8. 实验4-1-5 统计素数并求和 (20 分)

    实验4-1-5 统计素数并求和 (20 分) 本题要求统计给定整数M和N区间内素数的个数并对它们求和. 输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500). 输出格式: 在一行中顺序输 ...

  9. 实验4-1-7 特殊a串数列求和 (20 分)

    实验4-1-7 特殊a串数列求和 (20 分) 给定两个均不超过9的正整数a和n,要求编写程序求a+a**a+aaa++⋯+a**a⋯a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a ...

  10. 1002 写出这个数 (20 分)

    1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...

最新文章

  1. grpc_模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST
  2. Boost:时间副本的测试程序
  3. 【cJSON】CJSON学习笔记(二)
  4. ML.NET机器学习、API容器化与Azure DevOps实践(四):持续集成与k8s持续部署
  5. 阿里云重磅发布RDS for SQL Server AlwaysOn集群版
  6. FPGA你必须知道的那些事儿
  7. python自学入门-初学 Python 者自学 Anaconda 的正确姿势是什么?
  8. 省级面板数据(2003-2019)二十:道路长度、面积、用水、污水、废气、保护区等(stata或excel版本)
  9. 老视频修复完整教程:Topaz Video Enhance AI 提升分辨率+RIFE算法补帧
  10. LPC2294看门狗定时器
  11. 在个人博客网站上添加QQ邮箱的邮我功能
  12. 华为鸿蒙手机用大卡还是小卡,【荣耀3XPro评测】大卡+小卡双3G网络-中关村在线...
  13. 一网打尽寄存器、SRAM、DRAM、主存、磁盘、闪存、固态硬盘SSD
  14. 使用zxing生成彩色或带图片的二维码
  15. NLP入门之综述阅读-基于深度学习的自然语言处理研究综述
  16. python获取当前系统的日期_Python获取当前日期时间
  17. 计算机图形学(三种画线算法)
  18. JS字符串padStart()方法,padEnd()方法
  19. 计算机期末考试ppt操作,计算机期末考试重点PPT.ppt
  20. POS机IC卡参数、公钥下载流程及POSP数据库设计

热门文章

  1. Win10锁屏壁纸不能自动更新最全处理方法
  2. ROS创建KDL tree
  3. 0基础怎么画出好看的水彩画美术集水彩教程入门级教程
  4. Win10屏保设置位置在哪里可以找到
  5. 查询微信被谁投诉方法技巧
  6. Quorum 机制(分布式系统)
  7. 2020年中国研究生数学建模竞赛E题
  8. excel多个工作表汇总怎么做?
  9. 创维电视能用鸿蒙系统吗,鸿蒙OS系统电视怎么看直播?装了鸿蒙系统的电视可以看电视直播吗?当然可以...
  10. 移动端 touch事件