【题目描述】

输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。

如:$5 \over 6 $、$10 \over 3$ 均是最简形式,而$3 \over 6$需要化简为$1 \over 2$,$3 \over 1$需要化简为3。分子和分母均不为0,也不为负数。

【输入描述】

第一行是一个整数n,表示分数个数,1≤n≤10;

接下来nn行,每行一个分数,用”p/q”的形式表示,不含空格,p,q,均不超过10。

【输出描述】

输出只有一行,即最终结果的最简形式。若为分数,用”p/q”的形式表示。

【样例输入】

2

1/2

1/3

【样例输出】

5/6

【分析】

(1)有一个求最大公约数的函数来化简分数

(2)分子和分母要有通分的过程

(3)注意特殊条件 ,类似 $3 \over 1$ 只能写成3,不能写成3/1

【参考代码 1】

#include

#include

#include

#include

#define N 1000010

using namespace std;

int a[20],b[20];

//求最大公约数的函数

int gcd(int a,int b)

{

if(b==0)

return a;

return gcd(b,a%b);

}

int main()

{

int n;

int cnt=0;

int fenzi=0,fenmu=1; //用fenzi表示最终的分子,fenmu表示分母,注意分母不能为0

int divisor=0; //最大公约数

char s[20];

cin>>n;

while(n--)

{

scanf("%d/%d",&a[cnt],&b[cnt]); //把n个数读入数组,a是表示分子,b是表示分母

cnt++;

}

for(int i=0;i

fenmu*=b[i]; //通分的过程

for(int i=0;i

fenzi=fenzi+fenmu*a[i]/b[i]; //计算分子和的过程

divisor=gcd(fenmu,fenzi);//计算分子分母的最大公约数

fenmu/=divisor;

fenzi/=divisor;

if(fenmu==1)

cout<

else

cout<

return 0;

}

返回目录:题解目录

Post Views:

158

mysql 分数相加_分数求和相关推荐

  1. mysql 逐行相加_隔行求和很难吗?使用函数即可轻松搞定,再也不用逐行相加了...

    Hello,大家好,今天跟大家分享下我们如何在excel中实现隔行求和,工作中我们想要求和的数据可能是每隔一列相互错开的,因为数据区域不是连续的,所以很多人会一行一行地进行计算,十分的浪费时间,今天就 ...

  2. 分数在c语言程序中怎么输入,如何在c语言中实现分数相加,以分数形式输出,并化为最简...

    完整的C程序: #include "stdio.h" /* 分数结构 */ typedef struct { int numerator;/* 分子 */ int denomina ...

  3. python分数约分_分数如何在python中可以直接声明吗?

    我们知道如果小数点后面的字数过长,我们会进行保留小数点后位数的操作.但是这样会在精准度上有所差别,当然我们也可以通过分数也避免小数点保留所带来的不精准性.不过分数在python中还不能直接使用的,需要 ...

  4. mysql集合相加_用SQL进行集合运算

    这篇文章主要介绍了关于用SQL进行集合运算 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 1.比较表和表drop table if exists tbl_a;create table ...

  5. C++面向对象程序设计习题1:分数相加

    C++面向对象程序设计习题1:分数相加 自从学习了C++面向对象编程相关基础语法后,苦于没有相应的习题来练习,偶然遇到了大佬华师数据学院·王嘉宁分享的50道习题,比较基础,但是确实会给我这样的初学者一 ...

  6. C语言分数相加并将最后结果化为最简分式(新手程序!!!)

    [问题描述]输入两个分数,对两个分数相加求和,要求和为最简分式.(两个分数为正数) [输入形式]3/24,5/36 [输出形式]19/72 [样例输入]1/7,4/21 [样例输出]1/3 源代码如下 ...

  7. 【Java校招面试】实战算法(五)——分数相加(虎牙)

    目录 前言 一.题目描述 二.解题思路 三.代码实现 后记 前言 "实战算法"是本专栏的第三个部分,本篇博文是第五篇博文,主要讲解虎牙笔试题--分数相加--的解法,如有需要,可: ...

  8. 【C++实验】类和对象(两个分数相加并且化简)

    类和对象进一步讨论 面向对象程序设计中的几个名词: st1是对象 display()是方法 st1.dispaly()是消息 构造函数:对类的成员进行初始化(为对象分配内存) 带参数/使用默认参数的构 ...

  9. c语言结构体求分数和,C语言 定义一个表示分数的结构体,并求两个分数相加之和...

    满意答案 正义使者_AYY 2014.08.20 采纳率:53%    等级:8 已帮助:711人 //结构定义中包含两个成员,分子和分母 struct fraction { int up, down ...

最新文章

  1. JavaFX拖放事件
  2. 使用Payara Micro的Easy Java EE Microservices
  3. 单机安装oracle,单机安装oracle系统
  4. 用指针交换两个数_LeetCode双指针系列
  5. 【Java】javaWeb中的三大组件与八大监听器
  6. python基础--字符串单引号双引号和三引号
  7. osea/ 5.0-6.0
  8. java进阶学习 --java网络编程一(转)
  9. C++ map, 运用map统计单词出现的次数
  10. 用c语言写双人贪吃蛇,试图写了一个双人贪吃蛇,结果蛇竖着跑正常,横着跑就只有头了,求解~...
  11. 《SEM长尾搜索营销策略解密》一一2.5 长尾,互联网时代生存的良药
  12. 磁芯电流探头降额功率的主要原因是什么?
  13. 第10章项目干系人管理__权力利益分配
  14. win10邮箱怎么设置qq邮箱服务器地址,老鸟给你说win10自带邮件怎么添加qq邮箱的解决方式...
  15. php如何将excel数据导入到数据库,【PHP】将Excel数据导入到MySQL数据库中
  16. [数据可视化] 折线图(Line Chart)
  17. Rxjava(Subject)-BehaviorSubject--代码分析
  18. Debian10配置IP地址、DNS、主机名
  19. Html设置表格撑开,CSS教程:表格不被撑开的解决办法
  20. 【网络】华为网络设备认证登录设置

热门文章

  1. w ndows10QQ远程,win10系统QQ远程协助无法操作对方电脑的解决办法
  2. 派森编程软件python有什么用_派森平台干什么的
  3. 【读书笔记】区块链思维
  4. ArcGIS制图学习(1)
  5. 如何找回u盘里丢失的文件,u盘里的文件丢了怎么找回
  6. linux安装程序企鹅,Linux-小企鹅输入法的安装与使用
  7. 【案例】用 turtle 绘制一个月饼
  8. Android性能优化系列之布局优化,Android程序员校招蚂蚁金服
  9. 若依管理系统windows本地运行教程
  10. 利用requests库下载视频