蓝桥杯常考的找规律题

目录

灵感来源:

B站视频链接:

找规律题具有什么样的特点:

报数游戏(Java组):

题目描述:

题目链接:

思路详解:

代码详解:

阶乘求和(Java组):

题目描述:

题目链接:

前置知识:

思路详解:

代码详解:

数字诗意(C/C++组):

题目描述:

题目链接:

思路详解:

代码详解:

平方差(C/C++组):

题解链接:


灵感来源:

这篇博客相当于一个题解合集,灵感来源于B站UP主“溶金落梧桐”,视频标题为“蓝桥杯常考的找规律题,学会思路轻松拿捏”。这个UP主是我在考试前刷到的,这位大佬分享了很多蓝桥杯的学习视频,大家可以去B站了解学习。下面我会把视频链接附上,建议大家自行观看视频学习,我的博客主要是对代码进行了整理合集,也算是自己拿来复习总结的资料

温馨提示:这里面的题目包含C/C++组,Java组以及Python组的题目,但是我这里全部都是用C/C++的方法写的题解

B站视频链接:

【蓝桥杯常考的找规律题,学会套路轻松拿捏】

找规律题具有什么样的特点:

数据非常大,通常大于10^8,看上去非常吓人,肯定暴力跑不出来

找规律题的两个特性:

1.周期性(结果在固定后重复)

2.答案符合某种递推式

报数游戏(Java组):

题目描述:

题目链接:

蓝桥云课 报数游戏

思路详解:

找规律,先尝试写出序列中的前100项,具体可以结合代码看,代码注释的非常具体

代码详解:

#include<bits/stdc++.h>  //蓝桥杯常考的找规律题,特点:数据非常大,通常大于10^8,看上去非常吓人,肯定 
using namespace std;     //暴力跑不出来 
//这题要求满足题目要求的第202420242024个数是多少,这个数据大约为2*10^11,真暴力用电脑跑得3000s左右
//而且考试的机子比自己的电脑更慢
int main()
{printf("2429042904288");return 0;
}
//该怎么办呢? 找规律,先尝试写出序列中的前100项 
//int ans;    ans用于记录当前枚举到第几个数,用于终止枚举 
//
//int main()
//{
//	for(int i=1;;i++)
//	{
//		if(ans==100)
//		{
//			return 0;
//		}
//		if(i%20==0||i%24==0)
//		{
//			cout<<i<<endl;
//			ans++;
//		}
//	}
//}
//20 24 40 48 60 72 80 96 100 120 140 144 160 168
//找规律发现第偶数位都是24的倍数,第2位是24,第4位是48,第6位是72
//可以总结出第i(i是偶数)位是24*(i/2),所以第202420242024位是24*101210121012=2429042904288

阶乘求和(Java组):

题目描述:

题目链接:

蓝桥云课 阶乘求和

前置知识:

1.如何求阶乘的和?定义fac来维护i的阶乘,用ans累加求和

题目链接:

B2153 求阶乘的和 - 洛谷

代码:

#include<bits/stdc++.h>
using namespace std;int n;
int ans;int main()
{cin>>n;int fac=1;  //用fac来维护i的阶乘 for(int i=1;i<=n;i++){fac=fac*i;ans+=fac;}cout<<ans<<endl;return 0;
}

2.阶乘尾零:对于n!,随着n变大,n!末尾的0一定越多。题目要求202320232023!的末尾9位数字,这个数据范围是2*10^11,显然暴力做不了,如果知道阶乘尾零的性质,就可以知道其实n大到某一个程度之后再增大末尾9位数字是不变的

3.模运算的加法分配律:(a+b)%p=(A%p+b%p)%p,为什么要用到模运算的加法分配律,因为当计算阶乘之和时,阶乘的值会迅速增大,可能会爆long long导致溢出错误

思路详解:

数据范围是2*10^11,显然暴力做不了,如果知道阶乘尾零的性质,就可以知道其实n大到某一个程度之后再增大末尾9位数字是不变的

如果不知道阶乘尾零的性质,就先尝试前100项再找规律

代码详解:

#include<bits/stdc++.h>  //蓝桥杯常考的找规律题 
using namespace std;     //有个东西叫阶乘尾零:对于n!,随着n变大,n!末尾的0一定越多 
//题目要求202320232023!的末尾9位数字,这个数据范围是2*10^11,显然暴力做不了,如果知道阶乘尾零的性质,
//就可以知道其实n大到某一个程度之后再增大末尾9位数字是不变的int main()
{printf("420940313");return 0;
}
//如果不知道阶乘尾零的性质,就先尝试前100项再找规律
//题目求阶乘末尾的9位数字怎么办? %1e9即可
//模运算的加法分配律:(a+b)%p=(A%p+b%p)%p,为什么要用到模运算的加法分配律,因为当计算阶乘之和时,阶乘
//的值会迅速增大,可能会爆long long导致溢出错误 
//int main()
//{
//	long long x=1e9;
//	long long ans=0;
//	long long fac=1;            定义fac是为了维护i的阶乘 
//	for(int i=1;i<=100;i++)
//	{
//		fac=(fac*i)%x;          fac=fac*i;  实际上先求阶乘之和再取模可能会爆long long导致溢出错误 
//		ans=(ans+fac)%x;        ans+=fac;
//		cout<<ans<<endl;        ans%=x;      在取模之前可能ans就已经溢出了,所以输出结果会出现负数 
//	}                           cout<<ans<<endl;
//	return 0;
//}
//通过输出可以发现规律,到后面n越来越大的时候,后9位数字其实都一模一样,更不用说n=202320232023了
//如何理解代码中模运算的加法分配律的使用:
//fac=fac*i表示求单个阶乘 eg:1! 2! 3! 4!
//fac=(fac*i)%1e9表示每个单个阶乘取模于1e9 eg:(1!)%1e9 (2!)%1e9
//ans+=fac表示把单个阶乘加起来求和,即阶乘之和 eg:1!+2!+3!+4!
//fac=(fac*i)%1e9和ans=(ans+fac)%1e9表示之前的结果加上单个阶乘取模于1e9的整体再取模于1e9
//即i=1时,ans=(1!%1e9)%1e9  i=2时ans=((1!%1e9)%1e9+(2!%1e9))%1e9

数字诗意(C/C++组):

题目描述:

题目链接:

P10900 [蓝桥杯 2024 省 C] 数字诗意 - 洛谷

数字诗意 - 蓝桥云课

思路详解:

先暴力写个100项看看有没有什么规律,代码里注释的很详细,结合代码看就行

代码详解:

#include<bits/stdc++.h> //蓝桥杯常考的找规律的题,一看题目数据ai最大为10^16,就想一下能不能规律 
using namespace std;    //先暴力写个100项看看有没有什么规律 const int N=2e5+10;     //开大一点,防止数字越界 int n;
long long a[N]; //由题ai最大为10^16,会爆int,所以开long long 
int ans; //由题ans记录要删除的数字个数,找规律发现要删的是2的幂次方,由于指数爆炸所以ans开int就行 int main()
{cin>>n;for(int i=0;i<n;i++){scanf("%lld",&a[i]);int x=log2(a[i]);  //对a[i]进行以2为底的对数运算,int x所以x取的是运算结果的整数部分 if((long long)1<<x==a[i]) //1<<x表示将1左移x位,即2^x的幂运算 {                         //2^x可能会爆int,开个强制类型转换再判断是否等于a[i] ans++;     //等于a[i]就说明log2(a[i])就是没有小数部分,即a[i]就是2的幂次方 }}cout<<ans<<endl;return 0;
}
//bool check(int x)
//{
//	for(int i=1;i<x;i++) //i表示的是从i开始枚举连续的正整数,i=5表示从5开始枚举 
//	{
//		int sum=0;       //每次从i开始枚举都要定义sum=0 
//		for(int j=i;j<x;j++) //j表示的是枚举的正整数,这个for循环是枚举连续正整数求和的过程 
//		{
//			sum+=j; //每枚举一个数就加到sum
//			if(sum==x) //每枚举一个数就判断sum,如果sum==x表示x可以用至少两个连续的正整数表示 
//			{
//				return true;
//			}
//		}
//	}
//	return false;
//}
//
//int main()
//{
//	for(int i=3;i<=10000;i++) //由题1和2不能用至少两个连续的正整数相加,所以从3开始 
//	{
//		if(check(i)==false) //false表示不能用至少两个连续的正整数相加 
//		{
//			cout<<i<<' ';   //把不满足要求的输出来看看有没有规律 
//		}
//	}
//	return 0;
//}
//i<=100中不能用至少两个连续的正整数相加的是4 8 16 32 64 好像是2的幂次方就不满足,再多枚举一点试试 
//i<=1000中不能用至少两个连续的正整数相加的是4 8 16 32 64 128 256 512
//i<=10000,4 8 16 32 64 128 256 512 1024 2048 4096 8192       跑了75s出结果 

平方差(C/C++组):

这题之前已经写了一篇很详细的题解,还包括平方差结论,平方差结论拓展的补充题目,下面直接附上链接

题解链接:

第十四届蓝桥杯 2023 C/C++组 平方差-CSDN博客

蓝桥村的真相(Python组):

题目描述:

题目链接:

P11003 [蓝桥杯 2024 省 Python B] 蓝桥村的真相 - 洛谷

蓝桥村的真相 - 蓝桥云课

思路详解:

这题不像之前几题那样暴力前100项找规律,因为确实满足要求的判断也比较难写。实际这题是直接通过分析来找规律的,分析过程看草稿纸图片

代码详解:

#include<bits/stdc++.h> //蓝桥杯常考的找规律题,数据范围n<=10^18非常大,暴力一定超时,一定要找规律 
using namespace std;    //这题不像之前几题那样暴力前100项找规律,因为确实满足要求的判断也比较难写 //实际这题是直接通过分析来找规律的,分析过程看草稿纸图片 
const int T=1e5+10;
const long long N=1e18+10;int t;int main()
{cin>>t;while(t--){long long n;scanf("%lld",&n);if(n%3==0)                //当n能整除3时,答案为2*n {printf("%lld\n",2*n);}else                      //当n不能整除3时,答案为n {printf("%lld\n",n);}}return 0;
}

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

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

相关文章

使用ffmpeg 将图片合成为视频,填充模糊背景,并添加两段音乐

1.输入3张图片,每张播放一次,播放两秒,视频分辨率设置为1920:1080,每张图片前0.3秒淡入,后0.3秒淡出,图片宽高比不变,用白色填充空白区域 ffmpeg -loop 1 -t 2 -i "img1.jpg" \-loop 1 -t 2 -i "img2.jpg" \-loop 1 -t 2 -i "img3.jpg" \-filte…

PostgreSQL技术内幕29:事件触发器tag原理解析

文章目录 0.简介1.概念说明2.tag的生成和存储2.1 tag合法性校验2.2 内存中存储2.3 持久化存储 3.tag的触发 0.简介 在上一篇文章中中&#xff0c;我们介绍了PG中的两种触发器&#xff0c;即适合于DML的普通触发器和对于DDL的事件触发器&#xff0c;其中事件触发器与常规的 DML…

mysql 导入很慢,如何解决

精选 原创 码出财富2025-04-14 17:35:14博主文章分类&#xff1a;数据库©著作权 文章标签mysql数据库用户名文章分类MySQL数据库yyds干货盘点阅读数184 导入大型 SQL 文件到 MySQL 数据库时&#xff0c;速度可能会受到影响。以下是一些优化方法和建议&#xff0c;帮助你…

多物理场耦合低温等离子体装置求解器PASSKEy2

文章目录 PASSKEy2简介PASSKEY2计算流程PASSKEy2 中求解的物理方程电路模型等离子体模型燃烧模型 PASSKEy2的使用 PASSKEy2简介 PASSKEy2 是在 PASSKEy1 的基础上重新编写的等离子体数值模拟程序。 相较于 PASSKEy1&#xff0c; PASSKEy2 在具备解决低温等离子体模拟问题的能力…

保姆级zabbix监控jmx、数据库和网络监控(SNMP)

前言 在当今数字化时代&#xff0c;企业IT基础设施的稳定性与性能直接关系到业务连续性和用户体验。随着系统复杂性的不断增加&#xff0c;单一维度的监控已难以满足全面运维需求。Zabbix作为一款功能强大的开源监控解决方案&#xff0c;通过整合JMX&#xff08;Java Manageme…

复杂地形越野机器人导航新突破!VERTIFORMER:数据高效多任务Transformer助力越野机器人移动导航

作者&#xff1a; Mohammad Nazeri 1 ^{1} 1, Anuj Pokhrel 1 ^{1} 1, Alexandyr Card 1 ^{1} 1, Aniket Datar 1 ^{1} 1, Garrett Warnell 2 , 3 ^{2,3} 2,3, Xuesu Xiao 1 ^{1} 1单位&#xff1a; 1 ^{1} 1乔治梅森大学计算机科学系&#xff0c; 2 ^{2} 2美国陆军研究实验室&…

SharpMap与TerraLib:C#与C++开源GIS库

大家好&#xff0c;今天为大家介绍的软件是SharpMap&#xff1a;一款专为了C#&#xff08;.NET&#xff09;环境设计的开源地图和空间数据处理库&#xff1b;TerraLib&#xff1a;一款由C编写、支持多种数据库的开源的GIS软件库。 下面&#xff0c;我们将从两个开源软件的主要…

音视频学习 - MP3格式

环境 JDK 13 IDEA Build #IC-243.26053.27, built on March 16, 2025 Demo MP3Parser MP3 MP3全称为MPEG Audio Layer 3&#xff0c;它是一种高效的计算机音频编码方案&#xff0c;它以较大的压缩比将音频文件转换成较小的扩展名为.mp3的文件&#xff0c;基本保持源文件的音…

Unity中数据和资源加密(异或加密,AES加密,MD5加密)

在项目开发中&#xff0c;始终会涉及到的一个问题&#xff0c;就是信息安全&#xff0c;在调用接口&#xff0c;或者加载的资源&#xff0c;都会涉及安全问题&#xff0c;因此就出现了各种各样的加密方式。 常见的也是目前用的最广的加密方式&#xff0c;分别是&#xff1a;DE…

部署本地deepseek并在调用的详细步骤以及解决一些可能出现的问题(Windows,Linux, WSL)

打开Ollama官网&#xff1a;https://ollama.com/ 直接下载Ollama并且安装好Ollama、这时候就能看到app里多了个ollama&#xff0c;但是我们不用打开它 打开Windows Powershell&#xff1a; ollama run deepseek-r1:1.5b 7b 8b 14b 32b 70b 根据自己的电脑配置和需求更换不同的…

【KWDB 创作者计划】_嵌入式硬件篇---寄存器与存储器截断与溢出

文章目录 前言一、寄存器与存储器1. 定义与基本概念寄存器(Register)位置功能特点存储器(Memory)位置功能特点2. 关键区别3. 层级关系与协作存储层次结构协作示例4. 为什么需要寄存器性能优化指令支持减少总线竞争5. 其他寄存器类型专用寄存器程序计数器(PC)栈指针(SP)…

小白自学python第二天

学习python的第二天 一、判断语句 1、布尔类型和比较运算符 1、布尔类型 表示现实生活中的逻辑&#xff0c;真&#xff08;True&#xff0c;用数字1表示&#xff09;和假&#xff08;False&#xff0c;用数字0表示&#xff09; 2、布尔类型变量的定义 变量的名称 布尔类…

linux基础操作1------(文件命令)

一.前言 我们本章开始讲解linux&#xff0c;我们对于linux得有重要的认识&#xff0c;比如项目部署等等&#xff0c;都会用到linux&#xff0c;今天我们就开始linux的学习&#xff0c;我们需要准备的工具有vmware和xshell&#xff0c;而这里我就不教大家虚拟机的安装以及xshel…

编码问题整合

一、windows系统编码 查看编码命令&#xff1a;chcp - 936 GBK - 65001 UTF-8 - 437 英文修改系统编码 1、控制面板修改 需管理员权限-Windows 10/11进入 控制面板 > 区域 > 管理 > 更改系统区域设置勾选 Beta版: 使用Unicode UTF-8提供全球语言支持 → 重启生效修…

如何配置Spark

1.上传spark安装包到某一台机器&#xff08;自己在finaShell上的机器&#xff09;。 2.解压。 把第一步上传的安装包解压到/opt/module下&#xff08;也可以自己决定解压到哪里&#xff09;。对应的命令是&#xff1a;tar -zxvf 安装包 -C /opt/module 3.重命名。进入/opt/mo…

Redis 完整配置模板

一、基础连接配置&#xff08;单机模式&#xff09; 基础参数&#xff08;适用Spring Boot&#xff09; spring:redis:host: 127.0.0.1port: 6379password: your_passworddatabase: 0 # 默认DB索引timeout: 2000ms # 全局操作超时时间二、连接池参数&#xff08;通用核心配…

边界凸台建模与实例

文章目录 边界凸台特征耳机案例瓶子 边界凸台特征 两侧对称拉伸最上面的圆柱 同过两点一基准面画草图&#xff0c;在基准面上画椭圆 隐藏无关的实体和草图&#xff0c;以便椭圆的端点能与线给穿透约束&#xff0c;下面的点与下面的线也给穿透&#xff0c;短轴长给35&#xff08…

河北省大数据应用创新大赛样题

** 河北省大数据应用创新大赛样题 ** 1. 在Linux下安装Java并搭建完全分布式Hadoop集群。在Linux终端执行命令“initnetwork”&#xff0c;或双击桌面上名称为“初始化网络”的图标&#xff0c;初始化实训平台网络。 【数据获取】 使用wget命令获取JDK安装包&#xff1a; “w…

【数据可视化-21】水质安全数据可视化:探索化学物质与水质安全的关联

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

DC-2寻找Flag1、2、3、4、5,wpscan爆破、git提权

一、信息收集 1、主机探测 arp-scan -l 探测同网段2、端口扫描 nmap -sS -sV 192.168.66.136 80/tcp open http Apache httpd 2.4.10 ((Debian)) 7744/tcp open ssh OpenSSH 6.7p1 Debian 5deb8u7 (protocol 2.0)这里是扫描出来两个端口&#xff0c;80和ssh&…