首页 > 其他分享 >1062 最简分数——20分

1062 最简分数——20分

时间:2022-08-14 10:11:06浏览次数:58  
标签:简分数 20 int 1062 m1 m2 n1 n2

一个分数一般写成两个整数相除的形式:N/M,其中M不为0。最简分数是指分子和分母没有公约数的分数表示形式。

现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母为K的最简分数。

输入格式:

输入在一行中按N/M的格式给出两个正分数,随后是一个正整数分母K,其间以空格分隔。题目保证给出的所有整数都不超过1000。

输出格式:

在一行中按N/M的格式列出两个给定分数之间分母为K的所有最简分数,按从小到大的顺序,其间以1个空格分隔。行首尾不得有多余空格。题目保证至少有1个输出。

输入样例:

7/18 13/20 12

输出样例:

5/12 7/12

| 代码长度限制 | 时间限制 | 内存限制 |
| 16KB |400ms | 64MB |

代码:

#include<bits/stdtr1c++.h>
using namespace std;
int gcd(int a, int b) {
	return !b ? a : gcd(b, a % b); //求最大公约数
}
int main() {
	int n1, m1, n2, m2, k;
	scanf("%d/%d %d/%d %d", &n1, &m1, &n2, &m2, &k);
	if (n1 * m2 > n2 * m1) { //若前者比后者大,则进行交换
		swap(n1, n2);
		swap(m1, m2);
	}
	int s1 = n1 * k / m1 + 1, s2 = n2 * k / m2; //计算出分子的范围
	int flag = 0;
	for (int i = s1; i <= s2; i++) {
		if ( gcd(i, k) == 1 && i * m2 < n2 * k) { //若分子分母的最大公约数是1,则为最简分式,同时要进行判断防止越界
			if (flag == 0) {
				printf("%d/%d", i, k);
				flag = 1;
			} else
				printf(" %d/%d", i, k);
		}
	}
	return 0;
}

标签:简分数,20,int,1062,m1,m2,n1,n2
From: https://www.cnblogs.com/Fare-well/p/16584874.html

相关文章

  • IDEA2022新建springMVC项目
    SpringMVC学习笔记新建项目新建一个空项目项目下添加一个maven的module,记得用ArcheType那个mavenweb模板记得Archetype的位置用maven-archetype-webapp模板,然后......
  • 《GB14925-2010》PDF下载
    《GB14925-2010实验动物环境及设施》PDF下载《GB14925-2010》简介本标准规定了实验动物及动物实验设施和环境条件的技术要求及检测方法,同时规定了垫料、饮水和笼具的......
  • [2001年NOIP普及组] 最大公约数和最小公倍数问题
    算法分析:先求出x的所有倍数和这个数是x的多少倍,这样最大公约数的问题解决,再去找能构成符合题意的最小公倍数的数,看是否是最大公约数注意:洛谷上提交需优化,数组范围要够,不能......
  • 1059 C语言竞赛——20分
    C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……......
  • 1057 数零壹——20分
    给定一串长度不超过10^5的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0、多少1。例如给定......
  • [2016年NOIP普及组] 回文日期
    试题分析:本题是一道暴力枚举题,我们可以直接从输入的date1开始遍历到date2,其余的我们只需要判断是否超出日期即可。注意:没有00月与00日,这里需要单独判断。代码如下: ......
  • [2001年NOIP普及组] 最大公约数和最小公倍数问题
    试题分析:题目输入x为最大公因数,y为最小公倍数,所以我们可以直接从x开始遍历,运用了<algorithm>库中的__gcd(i,j)函数(求i与j的最大公因数的函数),再根据“两个数最大公约数与最小公......
  • [2011年NOIP提高组] 铺地毯
    试题分析:要求最后覆盖的地毯的编号,所以可以从n向上遍历,找到符合要求的地毯,然后输出注意:没有地毯时输出-1#include<bits/stdc++.h>usingnamespacestd;intmain(){ ints......
  • [2011年NOIP提高组] 铺地毯
    试题分析:题目要求寻找指定坐标的最上面的地毯是几号,没有则输出-1,所以我们可以从最上面的地毯开始遍历,给了我们地毯的左下角坐标(也就是横纵坐标最小)和地毯的长宽,我们就可以......
  • [2008年NOIP普及组] 排座椅
    [2008年NOIP普及组]排座椅思路:本题考察的是贪心和排序代码如下:#include<bits/stdc++.h>usingnamespacestd;intak[1005],al[1005];//横排的前k个、纵排的前l个in......