程序填空技巧1.0

news2024/9/21 15:53:21

程序填空要先知道这个程序要干什么,然后找到标准模板后对照模板填写,但当然不是让你做题的时候对照模板写,而是要把每种算法的标准模板背下来,但你肯定要问:邹邹,我哪里来的模板呢???,接下来我会总结最有可能的算法模板:

  1. gcd和lcm问题:
    gcd是最大公约数的英文缩写,lcm是最小公倍数的英文缩写,我们先来看gcd的标准模板:
    首先我们要了解怎么做gcd,我们要用一种叫辗转相除法,就是每次把b的值赋给a,把a%b的值赋给b,如果b的值是0,说明已经找到了,就是a的值
    在这里插入图片描述
    这里就是每次判断如果b的值是0的话就输出a的值并跳出
    基础代码如下:
int gcd(int a,int b)
{
	int r=a%b;
	while(r!=0)	//判断r的值是否为0(判断是不是最大公约数)
	{
		a=b;
		b=r;
		r=a%b;
	}
	return b;
}

如果能力再强一点可以写递归进阶版:

int gcd(int a,int b)
{
	if(b==0)	//如果找到了就往回递归
	{
		return a;
	}
	return gcd(b,a%b);	//gcd递归写法更简单
}

接下来是lcm的标准模板:
我们先要知道gcd的公式,然后才可以推出lcm的结果,lcm的公式为:
l c m = a × b ÷ g c d ( a , b ) lcm=a×b÷gcd(a,b) lcm=a×b÷gcd(a,b)
所以标准模板为:

int gcd(int a,int b)	//gcd和前面一样
{
	if(b==0)
	{
		return a;
	}
	return gcd(b,a%b);
}
int lcm(int a,int b)
{
	return a*b/gcd(a,b);	//带入公式
}
  1. 质因数分解
    质因数分解是把一个数分解成几个质数的乘积,这叫做质因数分解。
    质因数分解要从2开始,因为最小的质数就是2,也不用判断质数,因为学过埃氏筛和欧拉筛的都知道,2算完了之后,4,6,8像这些2的倍数其实都被筛掉了(指不能用这些数乘出这个数了),但是有的数很大(指一次一次遍历的复杂度高),所以我们要用 n \sqrt n n ,这样复杂度就是 O ( n ) O(\sqrt n) O(n ),复杂度很低。
    标准模板:
for(int i=2;i*i<=n;i++)	//这里sqrt(n)也可以,这样复杂度低
{
	while(n%i==0)	//找到n的倍数
	{
		printf("%d ",i);
		n/=i;
	}
}
if(n>1)	//如果找不到就输出no
{
	printf("no");
}
  1. 二分
    二分也叫折半查找,二分又分为 二分查找二分答案 ,我们要先了解简单的二分查找,二分的查找方法如下:
    100→50→25→…→1
    100里一共最多要找7次
    二分的查找方法就是每次砍半后看是否大于要找的数,所以标准模板如下:
while(m--){
	scanf("%d",&q);
	int l=1,r=n;
	while(r-l>3){ // 当[l,r]长度大于4的时候 
		int mid=(l+r)/2;
		if(a[mid]<q) l=mid;
		else r=mid;
//		cout<<l<<" "<<r<<endl;
	}
	bool flag=0;
	for(int i=l;i<=r;i++){
		if(a[i]==q){
			flag=1;
			cout<<i<<" ";
			break; 
		}
	}
	if(flag==0) cout<<-1<<" ";
}

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

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

相关文章

租赁小程序开发|免押租赁系统包含哪些功能?

租赁小程序是一种基于现代技术的创新解决方案&#xff0c;为租赁业务提供了全面的管理功能。通过这个小程序&#xff0c;您可以方便地组织和跟踪您的库存情况&#xff0c;轻松管理租赁合同以及处理订单。这一切都在您的指尖之间&#xff0c;让您节省时间和精力&#xff0c;专注…

PHP敬老院管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页

一、源码特点 PHP 敬老院管理系统&#xff08;养老&#xff09;是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 论文 https://download.csdn.net/download/qq_41221322/…

【OCR识别】tess4j图片识别文字

什么是OCR? OCR &#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是指电子设备&#xff08;例如扫描仪或数码相机&#xff09;检查纸上打印的字符&#xff0c;通过检测暗、亮的模式确定其形状&#xff0c;然后用字符识别方法将形状翻译成计算机…

探秘工业设计的魅力:引领时尚潮流,打造个性空间

工业风格源自于上世纪初的工人阶级世界&#xff0c;几十年来一直充满诱惑力。它们由金属集合物&#xff0c;焊接、铆钉这些暴露在外的结构组建&#xff0c;融进了更多装饰性的曲线&#xff0c;再与素雅的色彩搭配形成&#xff1a;让我们来看看这种历史悠久的&#xff0c;在室内…

创作2周年纪念日-特别篇

创作2周年纪念日-特别篇 1. 与CSDN的机缘2. 收获3. 憧憬 1. 与CSDN的机缘 很荣幸&#xff0c;在大学时候&#xff0c;能够接触到CSDN这样一个平台&#xff0c;当时对嵌入式开发、编程、计算机视觉等内容比较感兴趣。后面一个很偶然的联培实习机会&#xff0c;让我接触到了Pych…

06:TIM定时器功能------编码器接口功能

目录 1:简历 2: 正交编码器 3:编码器接口基本结构 4:编码器的工作模式 5:极性反转 A:编码器接口测速 1:连接图 2:函数介绍 3:步骤 4:代码 B:编码器接口计次 1:连接图 2:代码 1:简历 Encoder Interface 编码器接口 编码器接口可接收增量&#xff08;正交&#xff09;编…

无涯教程-分类算法 - 简介

分类可以定义为根据观测值或给定数据点预测类别的过程。分类的输出可以采用"黑色"或"白色"或"垃圾邮件"或"非垃圾邮件"的形式。 在数学上&#xff0c;分类是从输入变量(X)到输出变量(Y)近似映射函数(f)的任务&#xff0c;它属于有监督…

Bito----一款Idea智能化代码辅助插件,让你的开发效率飞起来!

ChatGPT&#xff0c;想必大家都比较熟悉了&#xff0c;一款高情商对话AI&#xff0c;可以用来进行文本对话、问答等多种人机交互场景&#xff0c;也可以用来辅助编写代码&#xff0c;大大提高程序员的开发效率。而今天的主角Bito&#xff0c;是一款比ChatGPT更快&#xff0c;无…

error LNK2019: 无法解析的外部符号 __imp__glClear@4,函数 _main 中引用了该符号

自己犯这个错误有些搞笑了&#xff0c;找着教程一步一步来还出错&#xff0c;复制GLFW示例代码 运行&#xff0c;报的第一个错误&#xff0c;这是一个链接错误&#xff0c;解决方案&#xff1a;

Unity Meta Quest MR 开发教程:(二)自定义透视 Passthrough【透视功能进阶】

文章目录 &#x1f4d5;教程说明&#x1f4d5;动态开启和关闭透视⭐方法一&#xff1a;OVRManager.instance.isInsightPassthroughEnabled⭐方法二&#xff1a;OVRPassthroughLayer 脚本中的 hidden 变量 &#x1f4d5;透视风格 Passthrough Styling⭐Inspector 面板控制⭐代码…

JVM7:垃圾回收是什么?从运行时数据区看垃圾回收到底回收哪块区域?垃圾回收如何去回收?垃圾回收策略,引用计数算法及循环引用问题,可达性分析算法

垃圾回收是什么&#xff1f;从运行时数据区看垃圾回收到底回收哪块区域&#xff1f; 垃圾回收如何去回收&#xff1f; 垃圾回收策略 引用计数算法及循环引用问题 可达性分析算法 垃圾回收是什么&#xff1f;从运行时数据区看垃圾回收到底回收哪块区域&#xff1f;垃圾回收如何去…

使用Linux部署Kafka教程

目录 一、部署Zookeeper 1 拉取Zookeeper镜像 2 运行Zookeeper 二、部署Kafka 1 拉取Kafka镜像 2 运行Kafka 三、验证是否部署成功 1 进入到kafka容器中 2 创建topic 生产者 3 生产者发送消息 4 消费者消费消息 四、搭建kafka管理平台 五、SpringBoot整合Kafka 1…

求生之路2私人服务器开服搭建教程centos

求生之路2私人服务器开服搭建教程centos 大家好我是艾西&#xff0c;朋友想玩求生之路2(left4dead2)重回经典。Steam玩起来有时候没有那么得劲&#xff0c;于是问我有没有可能自己搭建一个玩玩。今天跟大家分享的就是求生之路2的自己用服务器搭建的一个心路历程。 &#xff0…

【LeetCode-面试经典150题-day15】

目录 104.二叉树的最大深度 100.相同的树 226.翻转二叉树 101.对称二叉树 105.从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树 117.填充每个节点的下一个右侧节点指针Ⅱ 104.二叉树的最大深度 题意&#xff1a; 给定一个二叉树 root &#xff0c;返回其…

登录校验-JWT令牌-登陆后下发令牌

目录 思路 接口文档 令牌生成和下发 步骤 具体代码如下 工具类 控制类 测试 前后端联调 思路 令牌生成&#xff1a;登陆成功后&#xff0c;生成JWT令牌&#xff0c;并返回给前端令牌校验&#xff1a;在请求到达服务端后&#xff0c;对令牌进行统一拦截、校验 接口文档…

c语言练习题31:字符转换

scanf(“%[^\n]“, str)正则用法 1 ^表示"非"&#xff0c;[^\n]表示读入换行字符就结束读入。这个是scanf的正则用法&#xff0c;我们都知道scanf不能接收空格符&#xff0c;一接受到空格就结束读入&#xff0c;所以不能像gets()等函数一样接受一行字符串&#xff0…

全基因组选择:LightGBM通过提升GWAS敏感性促进基因挖掘

GWAS是识别性状相关基因和理解性状背后的遗传结构的有效方法&#xff0c;随着下一代测序技术的快速发展&#xff0c;基因分型费用显著降低&#xff0c;而在大规模人群的情况下&#xff0c;表型已成为GWAS的瓶颈。由于测序技术的快速发展&#xff0c;获取基因的成本已经显著降低…

分享几个 Selenium 自动化常用操作

最近工作会用到selenium来自动化操作一些重复的工作&#xff0c;那么在用selenium写代码的过程中&#xff0c;又顺手整理了一些常用的操作&#xff0c;分享给大家。 常用元素定位方法 虽然有关selenium定位元素的方法有很多种&#xff0c;但是对于没有深入学习&#xff0c;尤…

Python“牵手”当当网商品列表数据,关键词搜索当当网API接口数据,当当网API接口申请指南

当当网平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;当当网API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问当当网平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现当…

AVR128 智能风扇设计-proteus-程序

一、系统方案 模拟的电风扇的工作状态有3种&#xff1a;自然风、常风及睡眠风。使用三个按键S1-S3设置自然风、常风及睡眠风。 再使用两个按键S4和S5&#xff0c;S4用于定时电风扇定时时间长短的设置&#xff0c;每按一次S4键&#xff0c;定时时间增加10秒&#xff0c;最长60秒…