蓝桥杯之日期题

server/2025/2/28 23:11:16/

文章目录

    • 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.ppmy.cn/server/171407.html

相关文章

Spring Core面试题

Spring Core面试题 基础概念 Q1: Spring的核心特性有哪些&#xff1f; public class SpringCoreBasicDemo {// 1. IoC容器public class IoCExample {public void iocDemo() {// XML配置Configurationpublic class AppConfig {Beanpublic UserService userService() {return …

Nmap使用指南

Nmap使用指南 Nmap (网络映射器) 是一款强大的应用网络扫描和安全核查工具&#xff0c;适合于网络管理和安全专家。本文将介绍Nmap的基本使用方法&#xff0c;包括基本命令和常用功能。 1. 基本使用方式 Nmap的基本命令格式如下&#xff1a; nmap [选项] 目标地址目标地址 可…

火狐浏览器多开指南:独立窗口独立IP教程

无论是跨境电商从业者需要管理多个店铺账号&#xff0c;还是海外社交媒体营销人员要运营多个社交平台账号&#xff0c;亦或是从事多账号广告投放的人员&#xff0c;都面临着一个共同的挑战 —— 如何高效管理多个账号&#xff0c;并确保每个账号的独立性。 在这种情况下&#…

蓝牙接近开关模块感应开锁手机靠近解锁支持HID低功耗

ANS-BT101M是安朔科技推出的蓝牙接近开关模块&#xff0c;低功耗ble5.1&#xff0c;采用UART通信接口&#xff0c;实现手机自动无感连接&#xff0c;无需APP&#xff0c;人靠近车门自动开锁&#xff0c;支持苹果、安卓、鸿蒙系统&#xff0c;也可以通过手机手动开锁或上锁&…

12. 三昧真火焚环劫 - 环形链表检测(快慢指针)

哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的环形山脉,山脉中有一条蜿蜒的火龙,它象征着环形链表。山脉的入口处有一块巨大的石碑,上面刻着一行文字:“欲破此山,需以三昧真火之力,焚环劫之链,快慢指针定环踪。” 哪吒定睛一看,石碑上还有一行小字…

矩阵营销的 AI 进化:DeepSeek 如何助力批量运营账号?

在数字营销的浪潮中&#xff0c;矩阵营销 已成为企业拓展市场、提升曝光的重要策略。然而&#xff0c;面对日益复杂的流量生态和平台风控&#xff0c;如何高效运营海量账号&#xff0c;同时保持内容的原创性和高转化率&#xff0c;成为营销人员的一大挑战。 随着 DeepSeek AI …

山东大学软件学院nosql实验二

实验二 熟悉环境、建立/删除表、插入数据 实验内容&#xff1a; 创建命名空间&#xff08;user学号&#xff0c;例如user201500300001&#xff09;&#xff0c;设计表结构并创建表&#xff0c;将附件数据插入。 实验步骤与内容&#xff1a; 方法一&#xff1a; 对于csv文…

验证码介绍及生成与验证(HTML + JavaScript实现)

验证码介绍及生成与验证&#xff08;HTML JavaScript实现&#xff09; 验证码 验证码&#xff08;全自动区分计算机和人类的图灵测试&#xff0c;‌CAPTCHA &#xff0c;C‌ompletely ‌A‌utomated ‌P‌ublic ‌T‌uring test to tell ‌C‌omputers and ‌H‌umans ‌A‌…