藍橋杯之日期題

文章目錄

    • 1.藍橋杯必備知識點
    • 2. 題型1
    • 3.需求2

1.藍橋杯必備知識點

藍橋杯是一個面向全國高校計算機相關專業學生的學科競賽,涵蓋多個賽道,常見的有軟件類(如 C/C++ 程序設計、Java 軟件開發、Python 程序設計)和電子類(如嵌入式設計與開發、單片機設計與開發等)。以下為你分別介紹軟件類和電子類省賽的必備知識點:
軟件類
編程語言基礎

C/C++基本語法:變量、數據類型(如整型、浮點型、字符型、指針等)、運算符、控制結構(如 if-else、for、while 循環)等。函數:函數的定義、調用、參數傳遞(值傳遞、指針傳遞、引用傳遞)。數組和字符串:數組的定義、初始化、訪問,字符串的處理(如字符串的輸入輸出、字符串函數的使用)。結構體和聯合體:結構體和聯合體的定義、使用,結構體數組等。文件操作:文件的打開、讀寫、關閉操作。
Java基本語法:變量、數據類型、運算符、控制語句。面向對象編程:類、對象、繼承、多態、封裝等概念,以及類的定義、方法的使用。字符串處理:String 類、StringBuilder 類的使用。集合框架:List、Set、Map 等集合的使用,以及迭代器的遍歷。異常處理:try-catch-finally 語句的使用。
Python基本語法:變量、數據類型(如列表、元組、字典、集合)、控制流語句。函數和模塊:函數的定義和調用,模塊的導入和使用。文件操作:文件的讀寫操作。面向對象編程:類和對象的創建,方法和屬性的使用。

數據結構

數組:一維數組、多維數組的使用,數組的排序(如冒泡排序、快速排序)和查找(如二分查找)。
鏈表:單鏈表、雙向鏈表的實現,鏈表的插入、刪除、查找操作。
棧和隊列:棧和隊列的基本概念,棧的后進先出(LIFO)和隊列的先進先出(FIFO)特性,以及棧和隊列的實現和應用。
樹:二叉樹的遍歷(前序、中序、后序遍歷),二叉搜索樹的基本操作。
圖:圖的表示(鄰接矩陣、鄰接表),圖的遍歷(深度優先搜索、廣度優先搜索)。

算法

搜索算法:深度優先搜索(DFS)、廣度優先搜索(BFS),常用于解決迷宮問題、路徑搜索問題等。
動態規劃:通過將原問題分解為相對簡單的子問題,并保存子問題的解來避免重復計算,常用于解決最優子結構問題,如背包問題、最長公共子序列問題。
貪心算法:在每一步選擇中都采取當前狀態下的最優選擇,期望通過局部最優達到全局最優,如哈夫曼編碼、活動選擇問題。
排序算法:除了上述提到的冒泡排序、快速排序,還需要掌握選擇排序、插入排序、歸并排序等排序算法的原理和實現。

數學知識

數論:質數的判斷、最大公約數(GCD)和最小公倍數(LCM)的計算,以及同余定理等。
組合數學:排列組合的計算,常用于解決計數問題。

電子類
電路基礎

電路元件:電阻、電容、電感等基本元件的特性和參數計算。
電路定律:歐姆定律、基爾霍夫定律(電流定律和電壓定律)的應用。
電路分析方法:節點電壓法、網孔電流法等電路分析方法。

單片機知識

單片機原理:單片機的基本結構、工作原理,如 CPU、存儲器、I/O 接口等。
編程語言:常見的單片機編程語言為 C 語言,需要掌握單片機 C 語言的編程規范和技巧。
外設驅動:掌握單片機的各種外設驅動,如定時器、計數器、串口通信、中斷系統等。

傳感器與執行器

傳感器:了解常見傳感器的工作原理和使用方法,如溫度傳感器、光照傳感器、加速度傳感器等。
執行器:掌握執行器的控制方法,如電機驅動、繼電器控制等。

PCB 設計基礎

原理圖設計:使用專業的 PCB 設計軟件(如 Altium Designer)進行原理圖的繪制。
PCB 布局布線:掌握 PCB 布局布線的基本原則和方法,避免電磁干擾等問題。

2. 題型1

在這里插入圖片描述### 2.1代碼

# @File: 14.星期一計數.py
# @Author: chen_song
# @Time: 2025-02-25 10:41
from datetime import datetime, timedelta# 分割日期字符串為年、月、日
def divideToThreeParts(date):years = int(date[:4])month = int(date[4:6])day = int(date[6:8])return years, month, day# 判斷是否閏年
def isLeapYear(year):return (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0)# 獲取1 - 12月的天數
def getDaysOfMonthAccording2Year(month, year):if month in [1, 3, 5, 7, 8, 10, 12]:return 31if month in [4, 6, 9, 11]:return 30if month == 2:return 29 if isLeapYear(year) else 28# 寫一個函數實現對任意日期之間天數計算
def countDaysBetweenRandomDates(date1, date2):year1, month1, day1 = divideToThreeParts(date1)year2, month2, day2 = divideToThreeParts(date2)# 計算起始日期到當年年底的天數days1 = 0for m in range(month1, 13):if m == month1:days1 += getDaysOfMonthAccording2Year(m, year1) - day1else:days1 += getDaysOfMonthAccording2Year(m, year1)# 計算中間完整年份的天數days2 = 0for y in range(year1 + 1, year2):days2 += 366 if isLeapYear(y) else 365# 計算結束日期所在年份年初到結束日期的天數days3 = 0for m in range(1, month2):# 獲取最后一年前幾個月的天數days3 += getDaysOfMonthAccording2Year(m, year2)days3 += day2return days1 + days2 + days3date1 = input()
year1, month1, day1 = divideToThreeParts(date1)
dateTime1 = datetime(year1, month1, day1)# 獲得第一個周一
while dateTime1.weekday() != 0:dateTime1 += timedelta(days=1)
date1 = dateTime1.strftime("%Y%m%d")date2 = input()
year2, month2, day2 = divideToThreeParts(date2)
dateTime2 = datetime(year2, month2, day2)# 檢查第一個周一是否超過結束日期
if dateTime1 > dateTime2:result = 0
else:days = countDaysBetweenRandomDates(date1, date2)result = days // 7 + 1print(result)

3.需求2

在這里插入圖片描述## 3.1代碼

from datetime import datetime# 獲取用戶輸入的日期
input_date = input()
a, b, c = map(int, input_date.split('/'))# 定義日期范圍
start_date = datetime(1960, 1, 1)
end_date = datetime(2059, 12, 31)# 定義一個函數來判斷日期是否合法
def is_valid_date(year, month, day):try:# 嘗試創建日期對象,如果日期不合法會拋出 ValueError 異常date = datetime(year, month, day)return start_date <= date <= end_dateexcept ValueError:return False# 生成所有可能的日期組合  枚舉
all_combinations = [(1900 + a, b, c), (2000 + a, b, c),(1900 + c, a, b), (2000 + c, a, b),(1900 + c, b, a), (2000 + c, b, a)
]# 存儲合法的日期
valid_dates = []
for year, month, day in all_combinations:if is_valid_date(year, month, day):valid_dates.append(datetime(year, month, day))# 去除重復的日期并排序
unique_dates = sorted(set(valid_dates))# 輸出結果
for date in unique_dates:print(date.strftime("%Y-%m-%d"))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70810.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

muduo網絡庫2

Muduo網絡庫&#xff1a;底層實質上為Linux的epoll pthread線程池&#xff0c;且依賴boost庫。 muduo的網絡設計核心為一個線程一個事件循環&#xff0c;有一個main Reactor負載accept連接&#xff0c;然后把連接分發到某個sub Reactor(采用輪詢的方式來選擇sub Reactor)&…

WinSCP 連接到 Ubuntu 虛擬機

要使用 WinSCP 連接到 Ubuntu 虛擬機&#xff0c;一般采用 SFTP 或 SCP 協議進行文件傳輸。以下是詳細步驟&#xff1a; 1. 確保虛擬機網絡可訪問 首先&#xff0c;你的 Ubuntu 虛擬機需要允許外部訪問&#xff1a; 如果使用 NAT 網絡&#xff1a;需要設置端口轉發&#xff0…

redis小記

redis小記 下載redis sudo apt-get install redis-server redis基本命令 ubuntu16下的redis沒有protected-mode屬性&#xff0c;就算sudo啟動&#xff0c;也不能往/var/spool/cron/crontabs寫計劃任務&#xff0c;感覺很安全 #連接到redis redis-cli -h 127.0.0.1 -p 6379 …

Docker核心概念

容器介紹 Docker 是世界領先的軟件容器平臺&#xff0c;所以想要搞懂 Docker 的概念我們必須先從容器開始說起。 什么是容器? 先來看看容器較為官方的解釋 一句話概括容器&#xff1a;容器就是將軟件打包成標準化單元&#xff0c;以用于開發、交付和部署。 容器鏡像是輕量…

阿里云可觀測全面擁抱 OpenTelemetry 社區

作者&#xff1a;古琦 在云計算、微服務、容器化等技術重塑 IT 架構的今天&#xff0c;系統復雜度呈指數級增長。在此背景下&#xff0c;開源可觀測性技術已從輔助工具演變為現代 IT 系統的"數字神經系統"&#xff0c;為企業提供故障預警、性能優化和成本治理的全方…

2025年2月科技熱點深度解析:AI競賽、量子突破與開源革命

引言 2025年的科技領域持續呈現爆發式增長&#xff0c;AI大模型競爭白熱化、量子計算商業化加速、開源工具生態繁榮成為本月最受關注的議題。本文結合最新行業動態&#xff0c;從技術突破、商業布局到開發者生態&#xff0c;全面解析當前科技熱點&#xff0c;為讀者提供深度洞…

idea創建第一個springboot程序

說明&#xff1a; 我計劃用idea&#xff0c;創建第一個springboot程序&#xff0c;但是作為新手完全不會弄&#xff0c;今天我就親自嘗試一邊&#xff0c;并且出一期詳細&#xff0c;完美的教程&#xff0c;親測可以運行 step1. 點擊file &#xff0c; 選new&#xff0c; 選…

半導體芯片制造中 W CVD(鎢化學氣相沉積)

半導體芯片制造中 W CVD&#xff08;鎢化學氣相沉積&#xff09; 的 Nucleation 解析 在鎢&#xff08;W&#xff09;化學氣相沉積&#xff08;CVD&#xff09;工藝中&#xff0c;Nucleation&#xff08;成核&#xff09; 是沉積過程的初始階段&#xff0c;指鎢原子或分子在基…

Three.js 入門(輔助、位移、父子關系、縮放旋轉、響應式布局)

本篇主要學習內容 : 三維坐標系與輔助坐標系物體位移與父子元素物體的縮放與物體的旋轉設置響應式畫布與全屏控制 點贊 關注 收藏 學會了 本文使用 Three.js 的版本&#xff1a;171 基于 Vue3vite開發調試 1.三維坐標系與輔助坐標系 1.1) 導入three和軌道控制器 // 導入…

一鍵導出數據庫表到Excel

工作中&#xff0c;我們經常需要將數據庫表導出到Excel&#xff0c;通常我們會用數據庫編輯器之類的工具提供的導出功能來導出&#xff0c;但是它們的導出功能通常都比較簡單。 這篇文章將介紹一種簡單易用并且功能強大的導出方法。 新增導出 打開的盧導表工具&#xff0c;新…

CSS滾動條原理與自定義樣式指南,CSS滾動條樣式失效,滾動條樣式無效,-webkit-scrollbar無效,overflow不顯示滾動條

滾動內容形成的必要條件 CSS Overflow屬性解析 MDN官方文檔-Overflow屬性 菜鳥教程-Overflow屬性 overflow 屬性控制內容溢出元素框時在對應的元素區間內是否添加滾動條。 值描述visible默認值。內容不會被修剪&#xff0c;會呈現在元素框之外。hidden內容會被修剪&#xf…

【LLM】本地部署LLM大語言模型+可視化交互聊天,附常見本地部署硬件要求(以Ollama+OpenWebUI部署DeepSeekR1為例)

【LLM】本地部署LLM大語言模型可視化交互聊天&#xff0c;附常見本地部署硬件要求&#xff08;以OllamaOpenWebUI部署DeepSeekR1為例&#xff09; 文章目錄 1、本地部署LLM&#xff08;以Ollama為例&#xff09;2、本地LLM交互界面&#xff08;以OpenWebUI為例&#xff09;3、本…

溫濕度監控設備融入智慧物聯網

當醫院的溫濕度監控設備融入智慧物聯網&#xff0c;將會帶來許多新的體驗&#xff0c;可以幫助醫院溫濕度監控設備智能化管理&#xff0c;實現設備之間的互聯互通&#xff0c;方便醫院對溫濕度數據進行統一管理和分析。 添加智慧物聯網技術&#xff0c;實現對醫院溫濕度的實時…

在ubuntu如何安裝samba軟件?

我們在開發過程中&#xff0c;經常修改代碼&#xff0c;可以安裝samba文件來實現&#xff0c;把ubuntu的存儲空間指定為我們win上的一個磁盤&#xff0c;然后我們在或者磁盤里面創建.c文件&#xff0c;進行代碼修改和編寫。samba能將linux的文件目錄直接映射到windows&#xff…

[ComfyUI]官方已支持Skyreels混元圖生視頻,速度更快,效果更好(附工作流)

一、介紹 昨天有提到官方已經支持了Skyreels&#xff0c;皆大歡喜&#xff0c;效果更好一些&#xff0c;還有GGUF量化版本&#xff0c;進一步降低了大家的顯存消耗。 今天就來分享一下官方流怎么搭建&#xff0c;我體驗下來感覺更穩了一些&#xff0c;生成速度也更快&#xf…

B站pwn教程筆記-3

棧知識、部分保護措施 GDB顯示的棧地址有時候并不是可靠的地址&#xff0c;gdb也是用特殊的進程映像來拿地址的。且gdb默認關閉棧地址隨機化。但是&#xff0c;偏移量是沒有錯誤的。目前還沒學到咋解決 第一個棧幀是main函數棧幀&#xff0c;之前的一些系統函數什么的沒有棧幀…

Qt在Linux嵌入式開發過程中復雜界面滑動時卡頓掉幀問題分析及解決方案

Qt在Linux嵌入式設備開發過程中&#xff0c;由于配置較低&#xff0c;加上沒有GPU&#xff0c;我們有時候會遇到有些組件比較多的復雜界面&#xff0c;在滑動時會出現掉幀或卡頓的問題。要講明白這個問題還得從CPU和GPU的分工說起。 一、硬件層面核心問題根源剖析 CPU&#x…

Spring Boot 項目中,JDK 動態代理和 CGLIB 動態代理的使用

在 Spring Boot 項目中&#xff0c;JDK 動態代理和 CGLIB 動態代理都是實現 AOP (面向切面編程) 的重要技術。 它們的主要區別在于代理對象的生成方式和適用范圍。 下面詳細介紹它們的使用場景&#xff1a; 1. JDK 動態代理 (JDK Dynamic Proxy) 原理&#xff1a; JDK 動態代理…

OpenCV計算攝影學(2)圖像去噪函數denoise_TVL1()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 原始-對偶算法是用于解決特定類型變分問題&#xff08;即&#xff0c;尋找一個函數以最小化某個泛函&#xff09;的算法。特別地&#xff0c;圖像…

在 Windows 下的 Docker 中安裝 R語言

以下是在 Windows 系統的 Docker 中安裝 R 語言的詳細教程&#xff0c;包括 Docker 的安裝、配置以及如何在容器中運行 R 語言的步驟。 步驟 1&#xff1a;安裝 Docker 下載 Docker Desktop 訪問 Docker 官方網站&#xff1a;Docker Desktop: The #1 Containerization Tool for…