藍橋杯常考的找規律題

目錄

靈感來源:

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.pswp.cn/diannao/80484.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80484.shtml
英文地址,請注明出處:http://en.pswp.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&…