蓝桥杯之日期题

文章目录

    • 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.mzph.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…