【蓝桥杯基础题】2020年省赛填空题—既约分数

news2024/12/24 20:56:52

在这里插入图片描述

  • 👑专栏内容:蓝桥杯刷题
  • ⛪个人主页:子夜的星的主页
  • 💕座右铭:前路未远,步履不停

目录

  • 一、题目背景
  • 二、题目描述
  • 三、题目分析
    • 1.求最大公约数
      • ①辗转相减法
      • ②穷举法
      • ③辗转相除法
      • ④辗转相除法(递归)
    • 2.枚举求解
  • 四、代码汇总
    • 1.C语言代码
    • 2.C++代码
    • 3.运行结果
  • 五、总结
    • 最大公约数的求法


一、题目背景

本题为2020年省赛填空题

  • C/C++ A 组第2题
  • C/C++ B 组第2题
  • Java A 组第2题

二、题目描述

如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。
例如, 3 4 \frac{3}{4} 43 1 8 \frac{1}{8} 81 7 1 \frac{7}{1} 17 都是既约分数。
请问,有多少个既约分数,分子和分母都是12020之间的整数 ?
注意: 包括12020

三、题目分析

最大公约数:指两个或多个整数共有约数中最大的一个。
这道题求解1~2020中所有的既约分数,本质上就是求在1~2020这个范围内,所有分子和分母的最大公约数为1的分数个数。

1.求最大公约数

①辗转相减法

int gcd(int a,int b)
{		
	while(a != b)
	{
		if(a>b)
		{
			a = a - b;
		}
		else 
		{
			b = b - a;
		}
	}
	return a;
}

②穷举法

int gcd(int x,int y)
{
   	int temp = 0;
    for(temp = x ; ; temp-- )
    {
		if(x%temp == 0 && y%temp==0) 
	   		break; 
   	}
	return temp;
}

③辗转相除法

在这里插入图片描述


int gcd(int x,int y){
	int rem;
	while(n > 0){
		rem = x % y;
		x = y;
		y = rem;
	}
	return x;			
}

④辗转相除法(递归)

int gcd(int x, int y) {
	if (x%y==0)
		return y;
	else 
	return gcd(y, x%y);
	}

2.枚举求解

知道了如何判断最大公约数,剩下的循环枚举就很简单了。

int main()
{
	int count = 0;
	for (int i = 1; i <= 2020; i++)
	{
		for (int j = 1; j <= 2020; j++)
		{
			if (gcd(i, j) == 1)
				count++;
		}
	}
	printf("%d", count);
	return 0;
}

四、代码汇总

1.C语言代码

#include<stdio.h>
int gcd(int x, int y) {
	if (x % y == 0)
		return y;
	else
		return gcd(y, x % y);
}
int main()
{
	int count = 0;
	for (int i = 1; i <= 2020; i++)
	{
		for (int j = 1; j <= 2020; j++)
		{
			if (gcd(i, j) == 1)
				count++;
		}
	}
	printf("%d", count);
	return 0;
}

2.C++代码

注意:C++的algorithm库中自带求最大公约数的函数(__gcd())我们无需像C语言一样手写。

#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
	int count = 0;
	for (int i = 1; i <= 2020; i++)
	{
		for (int j = 1; j <= 2020; j++)
		{
			if (__gcd(i, j) == 1)
				count++;
		}
	}
	cout << count << endl;
}

3.运行结果

以下为代码的运行结果。

在这里插入图片描述
故最终答案为:2481215

五、总结

最大公约数的求法

最大公约数的求法有很多,我这里最推荐记忆递归版本的。
因为代码量少不容易写错

int gcd(int x, int y) {
	if (x%y==0)
		return y;
	else 
	return gcd(y, x%y);
	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LVGL之学习篇(一)

LVGL之学习篇(一) 学习目的 LVGL简介 LVGL本身是一个图形库&#xff0c;前身是litterVGL。其作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor&#xff0c;LVGL用C语音编写&#xff0c;以实现最大的兼容性(与C兼容)&#xff0c;模拟器可在没有嵌入式硬件的PC上启动嵌入式GUI设计…

MATLAB实验三

实验三 &#xff08;实验报告中附上每题的主要程序和结果&#xff09; 1、在命令行窗口中分别输入下列命令&#xff0c;对应输出结果是 A&#xff0e;命令x[-2:2] B&#xff0e;命令xzeros(1,2);x>0 C&#xff0e;命令ydiag(eye(3),1) D&#xff0e;命令[-2:2]30*eye(…

内存分页机制

文章目录内存分页的原因一级页表分页机制的原理一级页表二级页表二级页表概述地址转换启动分页机制内存分页的原因 在还未出现内存分页机制之前&#xff0c;我们都内存分段机制下工作。 但是&#xff0c;这样会有个问题。来看个下方的例子。 进程在分段机制下运行 下图&…

【学习记录】ORBSLAM2均匀化策略源码解析

在ORBSLAM中&#xff0c;为了保证特征的均匀分布使用了均匀化的策略&#xff0c;最近在尝试扩展一下均匀化的内容&#xff0c;所以仔细看了一下ORBSLAM源码里面这部分的内容&#xff0c;之前看源码的时候没有展开仔细看这一部分的代码&#xff0c;这里补充记录一下&#xff0c;…

未来SSD的接口趋势是什么?

针对SSD接口标准&#xff0c;目前业内有两大组织&#xff1a;PCI-SIG&#xff1a;这个就是定义pcie协议标准的那个组织&#xff0c;我们常见的传统接口M.2, U.2, 2.5英寸的接口都归这个组织定义规范。M.2&#xff0c;U.2起源与客户端&#xff0c;也是企业级当前最常用的接口形式…

elasticdump迁移ES数据详解

文章目录elasticdump 简介1.elasticdump导入ES数据到本地json文件2、将本地数据导入es中3、将es导入另一个es4 .其他参数使用--searchBody使用--searchBody 向本机ES导数据使用--typeanalyzer导出分析器elasticdump 简介 elasticdump是一个能够将es的数据快速导入、导出、迁移…

最新最全-中文生物医学命名实体识别最新研究论文、资源、数据集、性能整理分享

本资源旨在跟踪中文生物医学自然语言处理的进展&#xff0c;收集整理相关的论文列表和展示现存方法性能。内容整理自网络&#xff0c;源地址&#xff1a;https://github.com/lingluodlut/Chinese-BioNLP中文电子病历命名实体识别中文电子病历命名实体识别&#xff08;Chinese C…

《操作系统-真象还原》阅读总结/遗憾离场/加倍努力 出人头地

文章目录关于我又被老天算计奇奇怪怪的 BUG调试 BUG 的心理历程最后两天通宵调试程序的宵夜阅读建议本书所有笔记最后关于我又被老天算计 从 2022-09-14 读这本书&#xff0c;原计划是 2022-12-15 之前完成的&#xff0c;我自信能完成&#xff0c;因为11月下旬我已经开始阅读第…

【Linux】初识进程

文章目录进程控制块的引入初识进程控制块(PCB - Process Control Block)什么是PCBLinux下的PCB初见进程ps指令查看进程kill指令挂掉进程通过系统调用接口得到进程的ID(进程标识符)从根目录下的proc文件查看进程通过fork函数创建子进程进程控制块的引入 首先&#xff0c;听到进…

事故复盘 | 对不同的ID更新操作竟然也引发死锁?

对不同的ID更新操作竟然也引发死锁&#xff1f; 文章目录对不同的ID更新操作竟然也引发死锁&#xff1f;背景分析初步分析 - 怀疑程序并发问题进一步分析 - 怀疑主键缺失行级锁失效再进一步分析 - 是否存在死锁条件解决方案复盘附录示例的死锁日志常用故障排查 SQL参考链接背景…

webassembly学习

webassemblywebassembly学习基本理论webassembly介绍wasm介绍基本信息wasm会替换javascript么ASM.js&#xff08;wasm的前身&#xff09;将 WebAssembly 作为编程语言的一种尝试wasm应用场景wasm运行原理周边生态WASI 操作系统接口wasi介绍wasmwasi&#xff08;服务端&#xff…

平台总线式驱动开发——基本框架

1. 总线、设备和驱动 硬编码式的驱动开发带来的问题&#xff1a; 垃圾代码太多结构不清晰一些统一设备功能难以支持开发效率低下 1.1 初期解决思路&#xff1a;设备与驱动分离 struct device来表示一个具体设备&#xff0c;主要提供具体设备相关的资源&#xff08;如寄存器地…

ES为什么要移除types类型

文章目录elasticsearch&#xff08;集群&#xff09;中可以包含多个索引index&#xff08;数据库&#xff09; ,每个索引中可以包含多个类型types&#xff08;表&#xff09; ,每个类型下又包含多个文档Document&#xff08;行&#xff09; ,每个文档中又包含多个字段Field&…

姿态估计评价指标

PCK 正确估计出关键点的百分比 &#xff08;Percentage of Correct Keypoints&#xff09;&#xff0c;现在已基本不用。 PCKik∑iδ(did≤Tk)∑i1PCK_i^k\frac{\sum_i\delta(\frac{d_i}{d}\leq T_k)}{\sum_i1} PCKik​∑i​1∑i​δ(ddi​​≤Tk​)​ 检测出的关键点与其对应…

1 机器学习之线性回归

学习笔记自&#xff0c;慕课网 《Python3 入门人工智能》 https://coding.imooc.com/lesson/418.html#mid33109 麻雀虽小&#xff0c;五脏俱全 1.1 回归分析 1.2 线性回归问题求解 1.3 寻找最合适的 a、b&#xff0c;引入损失函数的概念 尽可能使损失函数最小即找到了最合适的…

(重要)实数域上一切范数等价的证明

证明&#xff1a;实数域上一切范数等价编辑切换为居中添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;首先需要明确范数等价的条件&#xff0c;这里的条件等价于夹逼&#xff0c;就是A小于等于B&#xff0c;B小于等于A&#xff0c;那么A肯定等于B。利用这个…

【MySQL】InnoDB存储引擎的行结构

文章目录前言1、MySQL的体系结构2、InnoDB逻辑存储结构3、InnoDB记录行结构3.1、概述3.2、语法操作3.3、Compact行格式3.3.1、示意图3.3.2、记录的额外信息3.3.3、记录的真实数据3.3.4、定长字段补充3.4、行溢出前言 MySQL服务器上负责对表中数据的读取和写入工作的部分是存储…

【博学谷学习记录超强总结,用心分享|产品经理基础总结和感悟14】

TOC 第三章&#xff0c; 内容服务平台优化思考 前文中&#xff0c;我们粗略分析了用户阅读内容的诉求和创作者编制内容的诉求&#xff0c;本章笔者尝试结合用户诉求分析平台的内容分发策略&#xff0c;结合创作者诉求分析创作者后台设计思路&#xff0c;创作者后台分析主要从…

Java实现支付宝支付,内网穿透,支付功能实现-57

一&#xff1a;支付业务 1.1 支付宝业务简介 1&#xff09;网页跳转到支付宝收银台页面。用户可以使用支付宝App扫一扫屏幕二维码&#xff0c;待手机提示付款后选择支付工具输入密码即可完成支付&#xff1b; 2&#xff09;如果不使用手机支付&#xff0c;也可以点击上图右侧…

Visual Studio解决方案中添加src文件夹的方法

如标题&#xff0c;这个听起来是一个愚蠢的问题&#xff0c;但如果在Visual Studio想添加一个src文件夹&#xff0c;而命名空间不包含src的话&#xff0c;似乎还真不容易。 如果在Visual Studio里新建一个空白解决方案&#xff0c;然后右键解决方案->添加->新建解决方案…