noi题库(noi.openjudge.cn) 1.13编程基础之综合应用 T12 分数求和
12:分数求和
- 描述
-
输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。
如:5/6、10/3均是最简形式,而3/6需要化简为1/2, 3/1需要化简为3。
分子和分母均不为0,也不为负数。
- 输入
- 第一行是一个整数n,表示分数个数,1 <= n <= 10;
接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q均不超过10。 - 输出
- 输出只有一行,即最终结果的最简形式。若为分数,用"p/q"的形式表示。
- 样例输入
-
2
1/2
1/3 - 样例输出
- 5/6
- 2种方法求最小公倍数:
- 1、翻倍法,例:
- 求 a,b,c的最小公倍数,
- ①:从a开始,a*1、a*2、a*3,直至乘到%b等于0,得到a与b的最小公倍数m
- ②:从m开始,m*1、m*2、m*3,直至乘到%c等于0,得到a与b与c的最小公倍数k
- 以此类推
#include<iostream>
#include<algorithm>
using namespace std;
int n,p[],q[];
char c;
int gcd(int a,int b)//求最大公约数
{
if(a<b) swap(a,b);
return !b ? a:gcd(b,a%b);
}
int main()
{
cin>>n;
for(int i=;i<=n;i++)
cin>>p[i]>>c>>q[i];
int m=q[],t=;
for(int i=;i<=n;i++)//求最小公倍数
{
int h=m;//h与m不能合为一个变量,在翻倍过程中,h逐渐改变,但翻的倍数仍然是m的倍数
while(h%q[i])
{
t++;
h=m*t;
}
m=h;t=;
}
for(int i=;i<=n;i++)//通分
p[i]=m/q[i]*p[i];
int tot=;
for(int i=;i<=n;i++) tot+=p[i];//分子和
if(tot%m==)//tot分子的和,m最小公倍数
{//分母为1
cout<<tot/m;
return ;
}
int k=gcd(tot,m);//k,最大公约数
cout<<tot/k<<'/'<<m/k;
}
2、a与b的最小公倍数*a与b的最大公约数=a*b
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long int n,mom[],son[],k,sum;
char baba;
long long int gcd(long long int x,long long int y){
if(y<x) swap(y,x);
return x==?y:gcd(y%x,x);
}
int main()
{
cin>>n;
for(int i=;i<=n;i++)
cin>>son[i]>>baba>>mom[i];
if(n>)
k=mom[]*mom[]/gcd(mom[],mom[]);
else
k=mom[];
for(int i=;i<=n;i++)
k=mom[i]*k/gcd(mom[i],k);
for(int i=;i<=n;i++)
sum+=son[i]*(k/mom[i]);
long long int s=gcd(sum,k);
if(sum%k)
cout<<sum/s<<"/"<<k/s;
else
cout<<sum/s;
return ;
}
noi题库(noi.openjudge.cn) 1.13编程基础之综合应用 T12 分数求和的更多相关文章
- NOI题库刷题日志 (贪心篇题解)
这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个平面上,如果有两个点( ...
- NOI题库 1768最大子矩阵 题解
NOI题库 1768最大子矩阵 题解 总时间限制: 1000ms 内存限制: 65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大 ...
- NOI题库 09:图像旋转翻转变换
NOI题库开始的题,也是略水,当然也是大水,所以彼此彼此 09:图像旋转翻转变换 总时间限制: 1000ms 内存限制: 65536kB 描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作 ...
- NOI题库-小学奥赛QwQ
今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T31——T35
T31 字符串P型编码 描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字符串str,请写出str的p型编码串.例如:字符串122344111可被描述为"1个1.2个 ...
- noi题库(noi.openjudge.cn) 1.5编程基础之循环控制T36——T45
T36 计算多项式的值 描述 假定多项式的形式为xn+xn-1+-+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值. 输入 输入仅一行,包括x和n,用单个空格隔开.x在flo ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30
T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...
- noi题库(noi.openjudge.cn) 1.9编程基础之顺序查找T06——T15
T06 笨小猴 描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词 ...
- noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T21——T25
T21 二维数组右上左下遍历 描述 给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组. 输入 输入的第一行上有两个整数,依次为 ...
随机推荐
- 面向对象程序设计第三次作业-Calculator
题目: 最终代码: Scan.h: Print.h: Calaulator.cpp: 解题过程 看到题目后,在查询之后明白了这是多文件的题目,然后通过翁凯老师的视频讲解知道了.h和.cpp文件的区别和 ...
- java集合ArrayList
基于jdk_1.8.0 关于List,主要是有序的可重复的数据结构.jdk主要实现类有ArrayList(底层使用数组).LinkedList(底层使用双向链表) ArrayList: (一)继承关系 ...
- iOS-UICollectionViewLayout方法介绍
注意:UICollectionView的自定义功能就是自己去实现UICollectionViewLayout的子类,然后重写相应的方法来实现Cell的布局 1.当布局首次被加载时会调用prepareL ...
- 30行js让你的rem弹性布局适配所有分辨率(含竖屏适配)(转载)
用rem来实现移动端的弹性布局是个好主意!用法如下: CSS @media only screen and (max-width: 320px), only screen and (max-devic ...
- debug阶段团队贡献分分配
小组名称:飞天小女警 项目名称:礼物挑选小工具 小组成员:沈柏杉(组长).程媛媛.杨钰宁.谭力铭 debug阶段各组员的贡献分分配如下: 姓名 团队贡献分 程媛媛 5.8 沈柏杉 6.5 谭力铭 3. ...
- python基础(六)python操作excel
一.python操作excel,python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的 ...
- Window下JDK安装教程
1.准备 win10系统,其他windows系统安装过程大同小异官网下载jdk1.8下载地址:https://www.oracle.com/technetwork/java/javase/downlo ...
- vue 组件 子向父亲通信用自定义方法用事件监听
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>T ...
- 记录下log4j的两种配置方式
XML文件配置 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configura ...
- centOS基本操作和命令(更新)
1.文字输入和图形界面切换 CTRL+ALT+(F1~F6)为切换至文字输入,分别对应六个不同输入界面,可用以不同账号:CTRL+ALT+F7为切换至图形界面 2.修改时区 date -R date ...