分数相加[通俗易懂]

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本题的要求很简单,就是求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 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int GCD(int a,int b)
 5 {
 6     if(a%b==0)
 7         return b;
 8     return GCD(b,a%b);
 9 }
10 int main()
11 {
12     int n,i;
13     scanf("%d",&n);
14     int x,y;
15     int zi=0,mu=1;
16     for(i=0; i<n; i++)
17     {
18         scanf("%d/%d",&x,&y);
19         int h=mu*y/GCD(y,mu);
20 
21         zi=h/y*x+h/mu*zi;
22     mu=h;
23         int j=GCD(zi,mu);
24         if(j!=0)
25         {
26             mu/=j;
27             zi/=j;
28         }
29     }
30     if(zi==0)
31     {
32         printf("0\n");
33     }
34     else if(abs(zi)<abs(mu))
35     {
36         if(zi*mu<0) printf("-");
37         printf("%d/%d\n",abs(zi),abs(mu));
38     }
39     else
40     {
41         printf("%d",zi/mu);
42         if(zi%mu)
43         {
44             printf(" %d/%d",abs(zi%mu),abs(mu));
45         }
46         printf("\n");
47     }
48     return 0;
49 }

View Code

注意输出格式以及分子为零

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167105.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python3中打开文件的方式(With open)「建议收藏」

    Python3中打开文件的方式(With open)「建议收藏」python文件读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘。读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件…

    2022年4月19日
    38
  • python删除文件指定行

    python删除文件指定行我们现在有五行数据,我们想删除第三行:pig删除文本指定行:删除文本指定行用的是foriini,找到指定行的关键字,将不包括关键字的其他行放在生成器中,将生成器包含的内容重新写入文件。我们这里不用readlines是因为foriinf是使用一行读取一行,不会消耗太多的内存。如果使用readlines就会一次性将所有的内容全部读取出来放在内存当中,会占用较多的内存,且不方便我们对…

    2022年5月30日
    166
  • padEnd_np.pad函数

    padEnd_np.pad函数ES2017引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全下面有一个小练习身份号只显示后四位

    2022年9月8日
    0
  • vim编辑器命令大全_VIM编辑器ZZ命令

    vim编辑器命令大全_VIM编辑器ZZ命令vim编辑器的常用命令,快捷键汇总

    2022年10月25日
    0
  • 如何制作bom表_如何制作bom表

    如何制作bom表_如何制作bom表(全路径Excel软件视频教程都可领取会员后免费学习)点我领会员免费学Excel全套基础入门教程!一、Excel软件入门MicrosoftExcel是Microsoft为使用Windows和AppleMacintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。第一章软件入门介绍第1课软件…

    2022年8月29日
    0
  • Shift 后门 简单学习

    Shift 后门 简单学习https://www.cnblogs.com/BOHB-yunying/p/11695140.html过程参考上文链接提出问题:整个过程并不复杂,但要实现攻击的前提条件,是已经打入目标主机,将C:\windows\system32\sethc.exe替换成C:\windows\system32\cmd.exe,所以这一步到底要如何做到?明白shift后门是如何产生的就是windows系统自带的5次shift键强制打开C:\windows\system32\sethc.exe,为了..

    2022年9月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号