蓝桥杯之日期题

文章目录

    • 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 31
    if month in [4, 6, 9, 11]:
        return 30
    if month == 2:
        return 29 if isLeapYear(year) else 28

# 写一个函数实现对任意日期之间天数计算
def countDaysBetweenRandomDates(date1, date2):
    year1, month1, day1 = divideToThreeParts(date1)
    year2, month2, day2 = divideToThreeParts(date2)

    # 计算起始日期到当年年底的天数
    days1 = 0
    for m in range(month1, 13):
        if m == month1:
            days1 += getDaysOfMonthAccording2Year(m, year1) - day1
        else:
            days1 += getDaysOfMonthAccording2Year(m, year1)

    # 计算中间完整年份的天数
    days2 = 0
    for y in range(year1 + 1, year2):
        days2 += 366 if isLeapYear(y) else 365

    # 计算结束日期所在年份年初到结束日期的天数
    days3 = 0
    for m in range(1, month2):
        # 获取最后一年前几个月的天数
        days3 += getDaysOfMonthAccording2Year(m, year2)
    days3 += day2

    return days1 + days2 + days3

date1 = 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 + 1

print(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_date
    except 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"))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法基础篇】-字符串

字符串篇 一、最长回文子串二、二进制求和三、字符串相乘今日分享这里 一、最长回文子串 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的 回文 子串。 讲解&#xff1a; 我们这里使用的是中心扩展方法&#xff0c;其实类似于暴力枚举&#xff0c;但是时间复杂度…

清华大学DeepSeek文档下载,清华大学deepseek下载(完成版下载)

文章目录 前言一、清华大学DeepSeek使用手册下载二、清华大学DeepSeek使用手册思维导图 前言 这是一篇关于清华大学deepseek使用手册pdf的介绍性文章&#xff0c;主要介绍了DeepSeek的定义、功能、使用方法以及如何通过提示语设计优化AI性能。以下是对这些核心内容的简要概述&…

DeepSeek技术提升,Linux本地部署全攻略

文章目录 1.Ollama部署1.1 安装Ollama1.2 配置Ollama1.3 下载deepseek模型 2.安装MaxKB可视化页面2.1 下载镜像2.2 运行容器2.3 配置MaxKB 3.配置Chatbox AI可视化页面 1.Ollama部署 Ollama下载地址 根据自己需求选择版本下载 1.1 安装Ollama 下载安装脚本并执行 curl -fs…

QSNCTF-WEB做题记录(2)

[第一章 web入门]常见的搜集 来自 <天狩CTF竞赛平台> 1&#xff0c;首先就是对网站进行目录枚举爆破 dirsearch -u http://challenge.qsnctf.com:31616 -x 404,403 得到如下的目录&#xff0c;分别查看一下内容 /.DS_Store /inde…

网络空间安全(1)web应用程序的发展历程

前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷&#xff0c;从简单的文档共享系统到如今复杂、交互式、数据驱动的平台&#xff0c;经历了多个重要阶段。 一、起源与初期发展&#xff08;1989-1995年&#xff09; Web的诞生&#xff1a; 1989年&#xff0c;欧洲…

pandas读取数据

pandas读取数据 导入需要的包 import pandas as pd import numpy as np import warnings import oswarnings.filterwarnings(ignore)读取纯文本文件 pd.read_csv 使用默认的标题行、逗号分隔符 import pandas as pd fpath "./datas/ml-latest-small/ratings.csv" 使…

SSL 证书是 SSL 协议实现安全通信的必要组成部分

SSL证书和SSL/TLS协议有着密切的关系&#xff0c;但它们本质上是不同的概念。下面是两者的区别和它们之间的关系的表格&#xff1a; 属性SSL/TLS 协议SSL证书英文全称SSL&#xff08;Secure Sockets Layer&#xff09;&#xff0c;TLS&#xff08;Transport Layer Security&am…

蓝桥杯单片机基础部分——1.5基础模块代码升级

前言 之前的蓝桥杯单片机基础部分——1、基础模块代码发现有的同学不太会使&#xff0c;这样的话就给他们都封装一下函数&#xff0c;额外封装一下蜂鸣器和继电器&#xff0c;这就全了&#xff0c;到时候的逻辑只要没问题就没啥事了 LED灯模块 现在&#xff0c;给这里封装一个…

PCB设计常用布局布线方法

PCB设计常用布局布线方法 **1.模块化布局&#xff0c;**先放大器件再放小器件。 立创在原理图框完后&#xff0c;在PCB快捷shiftp 2.布局对齐美观 3.重要信号线优先处理 分类再画 4.减少Stub布线&#xff1a;就是避免为连接的线段&#xff0c;防止产生“天线效应”&#xff…

基于C++“简单且有效”的“数据库连接池”

前言 数据库连接池在开发中应该是很常用的一个组件&#xff0c;他可以很好的节省连接数据库的时间开销&#xff1b;本文基使用C实现了一个简单的数据库连接池&#xff0c;代码量只有400行只有&#xff0c;但是压力测试效果很好&#xff1b;欢迎收藏 关注&#xff0c;本人将会…

LangChain大模型应用开发:LangGraph快速构建Agent工作流应用

介绍 大家好&#xff0c;博主又来给大家分享知识了。今天给大家分享的内容是使用LangChain进行大规模应用开发中的LangGraph快速构建Agent工作流应用。 通过对前几次对LangChain的技术分享。我们知道LangChain作为一个强大的工具集&#xff0c;为开发者们提供了丰富的资源和便…

基于 IMX6ULL 的环境监测自主调控系统

文章目录 前言一、项目介绍二、前台QT界面1. 界面设计2. 代码示例 三、后台硬件驱动四、JsonRPC 实现前后台分离1. 为什么要拆分&#xff1f;2. 如何拆分&#xff1f; 五、总结 前言 项目完整代码&#xff1a;基于 IMX6ULL 的环境监测自主调控系统完整代码 该项目的源代码适用…

洛谷:花神的数论题--数位dp

求乘积 const int N 1e2 10,T 20;LL n; LL a[N]; LL dp[N][N];//枚举的第i位,没有任何限制,已经填写了j个1的数的乘积 //表示在[pos 1, len]中已经填写了cnt个1&#xff0c;[1, pos]任意填写数&#xff0c;所有合法方案的乘积LL mo(LL x) {return (x % mod mod) % mod; }…

【Linux探索学习】第三十一弹——线程互斥与同步(下):深入理解确保线程安全的机制

线程互斥与同步&#xff08;上&#xff09;&#xff1a;【Linux探索学习】第三十弹——线程互斥与同步&#xff08;上&#xff09;&#xff1a;深入理解线程保证安全的机制-CSDN博客 Linux探索学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?…

UVM_CALLBACK 应用举例

UVM_CALLBACK是一种基于回调函数的设计模式&#xff0c;允许用户在特定事件发生时插入自定义的行为。UVM提供了uvm_callback类作为基类&#xff0c;用户可以通过继承该类来定义自己的回调行为。采用uvm_callback基类&#xff0c;用户可以在不更改原始代码的情况下轻松插入调试代…

优选算法大集合(待更新)

1.双指针 1.1.移动零 leetcode链接&#xff1a;283. 移动零 - 力扣&#xff08;LeetCode&#xff09;​​​​​​ 移动零的问题我们可以将它归类为数组划分的问题&#xff0c;我们将数组划分为非零部分和零部分。我们会使用到双指针的算法&#xff0c;在这里&#xff0c;我…

本地大模型编程实战(22)用langchain实现基于SQL数据构建问答系统(1)

使 LLM(大语言模型) 系统能够查询结构化数据与非结构化文本数据在性质上可能不同。后者通常生成可在向量数据库中搜索的文本&#xff0c;而结构化数据的方法通常是让 LLM 编写和执行 DSL&#xff08;例如 SQL&#xff09;中的查询。 我们将演练在使用基于 langchain 链 &#x…

在 Mac mini M2 上 MaxKb配置ollama,API域名无效的解决方案

环境说明 docker方案安装与使用的maxkb 本地ollama安装deekseek r1 解决方案 参考https://bbs.fit2cloud.com/t/topic/4165 mac m1用户&#xff0c;根据github的以下回复&#xff0c;成功绑定域名api 如果你想调用本地的ollama 中的大模型&#xff0c;域名试试&#xff1a;…

【STL专题】优先级队列priority_queue的使用和模拟实现,巧妙利用仿函数解决优先级

欢迎来到 CILMY23的博客 &#x1f3c6;本篇主题为&#xff1a;优先级队列priority_queue的使用和模拟实现&#xff0c;巧妙利用仿函数解决优先级 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a; C | C语言 | 数据结构与算法 | Linux…

【NLP 23、预训练语言模型】

人类发明后悔&#xff0c;来证明拥有的珍贵 —— 25.1.15 Bert的优势&#xff1a;① 预训练思想 ② Transformer模型结构 一、传统方法 VS 预训练方式 Pre-train&#xff1a; ① 收集海量无标注文本数据 ② 进行模型预训练&#xff0c;并在任务模型中使用 Fine-tune&#xff1a…