文章目录

  • 一、题目
  • 二、方法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. 声波配网:通过特定的声波序列将wifi密码发到无屏幕的设备上
  2. java之IO整理(中)
  3. java 读文件夹_java怎么读取读取文件夹下的所有文件夹和文件?
  4. php中var_dump是什么意思,php中的var_dump()方法的詳細說明
  5. 探秘云游戏背后实时音视频技术实践
  6. 怎样测量地图上曲线的长度_测量长度的特殊方法
  7. Graphics 单元中的类
  8. 移动端报表JS开发示例
  9. android 截屏 分享,Android应用内截图分享的实现记录
  10. 逆天闪存设备 居然能将数据保存至少百年
  11. VMware虚拟机与本地计算机进行资源共享的教程?
  12. 从招聘信息看-数据分析师(数据分析报告)
  13. SHOPEX网店系统测试 50万家网站的安全令人担忧
  14. 教你六步拆解 DDD领域驱动设计落地实践
  15. Java项目中使用Freemarker生成Word文档
  16. 中文老师经常说的IB课程,到底是什么?
  17. 项目docker容器化部署步骤
  18. VS2019:C++程序lib静态库、dll动态库的生成和使用
  19. 健康大数据管理与服务类毕业论文文献都有哪些?
  20. 从window到linux的折腾

热门文章

  1. 【VOLTE】【高清语音】什么是高清语音
  2. Linux-Ubuntu系统配置深度学习环境搭建
  3. 计算机鼠标双击怎么,鼠标双击变成属性怎么办 鼠标双击变成属性解决办法【详解】...
  4. (1)线性空间基本概念
  5. 百度网盘里的加密视频为什么不能直接用点盾云播放?
  6. Android JetPack Room
  7. 三位数除以两位数竖式计算没有余数_三位数除两位数计算题-云簿杜同学
  8. JAVA中链表的next解释
  9. 农耕文化元宇宙,Mixlab邀请你共创数字孪生艺术农场~~
  10. 第一课:两种方法教你如何注册小程序账号