文章目录

  • 一、题目
  • 二、方法1
    • 1、思路
    • 2、代码

一、题目

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

1、思路

实际上本题考察分数相加:即分母通分,分子相加,约分。

易错点提示:

  1. 变量在长整形的范围内!

  2. 最大公约数 gcd(),使用递归的方式实现辗转相除法求最大公约数。

    return b ? gcd(b, a % b) : a;

  3. 输出的时候注意考虑所有情况:
    设结果为n,则① n > 1;② n = 1;③ n < 1;

2、代码

#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 N = 0, a = 0, b = 0, sum_a = 0, sum_b = 1, t;scanf("%lld", &N);for (int i = 0; i < N; i++){scanf("%lld/%lld", &a, &b);//通分相加sum_a *= b;sum_a += a * sum_b;sum_b *= b;//约分t = gcd(sum_a, sum_b);sum_a /= t;sum_b /= t;}if (sum_a % sum_b == 0)printf("%lld\n", sum_a / sum_b);else if (sum_a < sum_b)printf("%lld/%lld\n", sum_a, sum_b);elseprintf("%lld %lld/%lld\n", sum_a / sum_b, sum_a % sum_b, sum_b);return 0;
}

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

  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. 天梯赛 L1-009 N个数求和 (20 分)

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

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

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

  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. CoreCRM 开发实录 —— Profile
  2. 在刚刚结束的ACL 2019上,知识图谱领域都发生了哪些大事?
  3. 福利 | NVIDIA英伟达免费直播课:带你选择、搭建AI服务器!
  4. nagios监控mysql主从复制
  5. rtorrent - 强大的命令行BT客户端
  6. GlassFish linux下配置服务并自动启动
  7. Windows 任务栏缩略图自定义程序[更新 Build20100830]
  8. 窦学计算机基础期末考试,关于新生开学考计算机基础
  9. 苹果公司的企业文化_百度、苹果、脉脉等互联网大厂的企业文化衫还能这么潮?...
  10. 两个八进制小数怎么相加_两个十六进制怎么相加的
  11. tensorflow随机梯度下降算法使用滑动平均模型
  12. POJ2728 最小比率生成树/0-1分数规划/二分/迭代(迭代不会)
  13. Java多线程游戏-雷霆战机
  14. 绝绝子!这些技巧真方便
  15. 【学习笔记】树莓派(3B+)及VMware对于代理Proxy的使用
  16. 苹果x为什么总黑屏_苹果X突然黑屏重启怎么回事?教你强制重启方法
  17. IOS- 时间格式转换问题(12小时和24小时的区别)
  18. 各种进制转换常用方法
  19. 大数据前端可视化大屏--前端开发之路
  20. PyQt5入门(一)

热门文章

  1. 业务流程管理(BPM)系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. Vue实战篇三十四:给新闻WebApp加入模拟注册登录功能
  3. 泰拉瑞亚 1.4 搭建服务器教程
  4. 破解版百度云【亲测好用】完美解决限速
  5. vscode调试配置和任务配置
  6. 浅析ERP系统--财务
  7. VIVO应用市场APP上架总结
  8. 省市名_code_拼音
  9. 联想小新一键恢复小孔_联想小新笔记本怎么一键恢复|联想小新air恢复出厂系统步骤...
  10. 联想服务器安装系统 F11,教你联想thinkpad系统还原f11一键恢复方法