第十五届蓝桥杯 2024 C/C++组 下一次相遇

目录

题目:

题目描述:

题目链接:

思路:

自己的思路详解:

更好的思路详解:

代码:

自己的思路代码详解:

更好的思路代码详解:


题目:

题目描述:

题目链接:

P10575 [蓝桥杯 2024 国 A] 下一次相遇 - 洛谷

下一次相遇 - 蓝桥云课

思路:

自己的思路详解:

我一开始自己的思路就是直接暴力遍历,关于日期问题的遍历其实多写几次就会发现格式都差不多(后续有时间我会总结蓝桥杯中的日期问题)。日期问题的遍历格式差不多就是全局变量打表定义每月的天数,定义函数判断闰年,三层for循环遍历年月日,其中按照题意对特殊的开始时间与结束时间判断一下即可。这里定义cnt来记录从2024年6月1日过了多少天到今天,cnt%7==0表示恰好过了n周。

这个思路比较暴力,写代码的话也还是比较长的,但是日期问题的遍历格式写熟练了还是挺好想的。

更好的思路详解:

因为这题是填空题,其实只要把逻辑思考明白就能想出答案。我的代码注释已经很详细地把逻辑推导写出来了,跟着代码注释一步步推导即可

代码:

自己的思路代码详解:

#include<bits/stdc++.h> //这题是填空题,答案是2030,这个代码是我自己思考的遍历方式,做法比较暴力 
using namespace std;    //在看完题解之后,发现其实有更简短的代码,以及更好的思考方式 int cnt; //cnt表示的是从2024年6月1日过了多少天 
int daysofmonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //每月的天数,索引为0时空放个0 bool isleaqyear(int y)  //定义函数判断闰年 
{if(y%400==0||(y%4==0&&y%100!=0)){return true;}else{return false;}
}int main()
{for(int year=2024;year<=2099;year++) //题目没有明确遍历结束的范围,我们自己先设一个比较大的年 {int monthmin=1;if(year==2024) //题目是从2024年6月1号开始 {monthmin=6;}for(int month=monthmin;month<=12;month++){int daymax=daysofmonth[month];if(isleaqyear(year)==true&&month==2){daymax=29;}for(int day=1;day<=daymax;day++){if(month==6&&day==1&&cnt%7==0) //cnt%7==0表示恰好过了n周,即表示某年6月1号是周六 {if(year!=2024){cout<<year<<endl;return 0;}}cnt++;}}}
}

更好的思路代码详解:

//这题是填空题,其实甚至不需要写代码,把逻辑思考明白就能想出来
//闰年的判断:能被400整除或能被4整除但是不能被100整除,平年365天,闰年366天,多的一天在二月,2024是闰年 
//每年同一天星期数的变化要分为两种情况:第一种是这一天在每年2月28及之前,第二种是在3月1日及以后 
//要这样分类讨论就是因为闰年多的那一天是2月29日//第一种情况:2023.2.1是星期三,问2024.2.1及2025.2.1是星期几?
//2023.2.1到2024.2.1过了一年,虽然2024年是闰年但是过的这一年并没有涉及2月29日,所以这一年过了365天 
//即2023.2.1到2024.2.1过了365天,365%7=1,即过了n周多一天,所以2024.2.1星期相比23向后推一天,即星期四
//同理,2024.2.1到2025.2.1过了一年,但是2024是闰年并且这一年涉及2月29日,所以这一年过了366天
//即2024.2.1到2025.2.1过了366天,366%7=2,即过了n周多两天,所以2025.2.1星期相比24向后推两天,即星期六//第二种情况如题:2024.6.1是星期六,问哪一年的6.1也是星期六?
//2024.6.1到2025.6.1过了一年,虽然2024是闰年但是过的这一年并没有涉及2月29日,所以这一年过了365天
//365%7=1,2025.6.1星期相比2024向后推一天,即星期天 
//2025.6.1~2026.6.1,365%7=1,2026.6.1是星期一
//2026.6.1~2027.6.1,365%7=1,2027.6.1是星期二
//2027.6.1~2028.6.1,2028是闰年且涉及2月29日,366%7=2,2028.6.1是星期四
//2028.6.1~2029.6.1,2028是闰年但是不涉及2月29日,365%7=1,2029.6.1是星期五
//2029.6.1~2030.6.1,365%7=1,2030.6.1是星期六//当然可以用代码实现,显然这比年月日三重for循环遍历的思路简短
#include<bits/stdc++.h>
using namespace std;int cnt;bool isleaqyear(int y)  //定义函数判断闰年 
{if(y%400==0||(y%4==0&&y%100!=0)){return true;}else{return false;}
}int main()
{for(int year=2025;year<=2099;year++)//从2025开始遍历,结束先设一个比较大的年份,反正找到就退出 {if(isleaqyear(year)==true) //就是将上面的思路转换为代码(这里涉及2月29日是看后面的年份) {cnt+=2; //如果是闰年,相当于星期向后推两天 }else{cnt+=1; //如果是平年,相当于星期向后推一天 }if(cnt%7==0) //看看向后推了几周余几天,这里表示的是没有余天数,即还是星期六 {cout<<year<<endl;return 0;  //只要找到第一个成立的年份就退出 }}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3中provide和inject数据修改规则

在 Vue3 中&#xff0c;通过 inject 接收到的数据是否可以直接修改&#xff0c;取决于 provide 提供的值的类型和响应式处理方式&#xff1a; 1. 若提供的是普通值&#xff08;非响应式数据&#xff09; javascript 复制 // 父组件 provide(staticValue, 123); 子组件修改行…

今日CSS笔记

原手写笔记 ------------------------------------------------------------------------------------------------------- css选择器的种类有很多种。这里只介绍几种常用的选择器。 1. 标签选择器标签选择器是最基本的选择器&#xff0c;它可以选择所有的标签。例如&#xff…

健康生活新指南

在 “朋克养生” 与 “躺平焦虑” 并存的时代&#xff0c;真正的健康生活无需刻意 “内卷”。这几个简单又实用的养生妙招&#xff0c;能让你在忙碌日常中悄悄升级健康状态&#xff0c;轻松拥抱活力人生。​ 一、饮食&#xff1a;吃对食物&#xff0c;给身体 “加 Buff”​ 别…

轻量级景好鼠标录制器

景好鼠标录制器&#xff08;详情请戳 官网&#xff09;是一款免费无广的键鼠动作录制/循环回放工具&#xff0c;轻松自动化应对一些重复繁琐的操作任务&#xff0c;如来回切换窗口、文档同一相对位置的复制粘贴等场景&#xff0c;兼容Win XP - 11 。毕竟此款本身主打简约类型&a…

结构体与共用体-------C语言经典题目(3)

结构体 1.如何定义和使用结构体指针&#xff1f; 1.结构体指针的定义 首先需要定义结构体类型&#xff0c;例如表示学生信息的结构体&#xff1a; struct Student {char name[50];int age;float score; };接着&#xff0c;使用struct 关键字和指针符号* 声明结构体指针&#x…

未来教育风向标 | 教育学顶流985高校,华东师范大学《AIGC技术赋能教育数字化转型的机遇与挑战》,13所大学deepseek

今天大师兄给大家推荐的是华东师范大学祝智庭教授的《AIGC技术赋能教育数字化转型的机遇与挑战》。华东师范大学是一所985学校&#xff0c;在最新的国家学科测评中&#xff0c;软件工程为A级&#xff0c;教育学为A级。 可以说在AI和教育的结合上是国内top级别的存在。 此讲义探…

Java常用正则表达式及使用方法

在 Java 中&#xff0c;Pattern 和 Matcher 类是 java.util.regex 包的核心&#xff0c;用于处理正则表达式。 Pattern 类 Pattern 类表示编译后的正则表达式&#xff0c;它提供了一种将正则表达式字符串编译成可执行对象的方式&#xff0c;以便后续用于匹配操作。 常用方法…

车载软件架构 --- 驾驶员不感知的控制器软件运行

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

深度学习3.5 图像分类数据集

%matplotlib inline import torch import torchvision from torch.utils import data from torchvision import transforms from d2l import torch as d2l代码执行流程图 #mermaid-svg-WWhBmQvijswiICpI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-…

Kotlin集合全解析:List和Map高频操作手册

Kotlin 中 Map 和 List 常用功能总结 List 常用功能 创建 List val immutableList listOf(1, 2, 3) // 不可变列表 val mutableList mutableListOf("a", "b", "c") // 可变列表 val emptyList emptyList<String>() // 空列表基本…

Yocto项目实战教程-第7章定制镜像菜谱与内核菜谱-7.2小节-定制应用程序

&#x1f50d; B站相应的视频教程&#xff1a; &#x1f4cc; Yocto项目实战教程-第7章-定制镜像菜谱与内核菜谱 记得三连&#xff0c;标为原始粉丝,感谢大神支持。 在嵌入式Linux系统开发中&#xff0c;定制专属应用程序往往是最贴近产品交付的那一环。而Yocto项目&#xff0c…

【图像轮廓特征查找】图像处理(OpenCV) -part8

17 图像轮廓特征查找 图像轮廓特征查找其实就是他的外接轮廓。 应用&#xff1a; 图像分割 形状分析 物体检测与识别 根据轮廓点进行&#xff0c;所以要先找到轮廓。 先灰度化、二值化。目标物体白色&#xff0c;非目标物体黑色&#xff0c;选择合适的儿值化方式。 有了轮…

C# 的 字符串插值($) 和 逐字字符串(@) 功能

这段代码使用了 C# 的 字符串插值&#xff08;$&#xff09; 和 逐字字符串&#xff08;&#xff09; 功能&#xff0c;并在 SQL 语句中动态拼接变量。下面详细解释它们的用法&#xff1a; 1. $&#xff08;字符串插值&#xff09; $ 是 C# 的 字符串插值 符号&#xff0c;允许…

mockMvc构建web单元测试学习笔记

web应用本来需要依靠tomcat这个环境运行 现在用mockMvc是为了模拟这个web环境&#xff0c;简化测试 什么是mock(模拟) 模拟对象---mock object是以可控方式模拟真实对象行为的假对象&#xff0c;通过模拟输入数据&#xff0c;验证程序达到预期结果 为什么使用mock对象 因为…

6.7.图的深度优先遍历(英文缩写DFS)

树是特殊的图&#xff0c;没有回路的图就是树 BFS与DFS的区别在于&#xff0c;BFS使用了队列&#xff0c;DFS使用了栈 一.深度优先遍历&#xff1a; 1.树的深度优先遍历&#xff1a; 树的深度优先遍历分为先根遍历和后根遍历。 以树的先根遍历为例&#xff1a; 上述图片里…

VOS3000内存满了怎么删除,录音格式如何转换呢

一、清理VOS3000内存&#xff08;删除旧录音文件&#xff09; 定位录音存储目录 通常录音文件存储在以下路径&#xff08;以实际配置为准&#xff09;&#xff1a; bash 复制 下载 /usr/local/vos/record # 默认录音目录 /var/log/vos/logs # 系统日志目录&#xff08;…

【图问答】DeepSeek-VL 论文阅读笔记

《DeepSeek-VL: Towards Real-World Vision-Language Understanding》 1. 摘要/引言 基于图片问答&#xff08;Visual Question Answering&#xff0c;VQA&#xff09;的任务 2. 模型结构 和 三段式训练 1&#xff09;使用 SigLIP 和 SAM 作为混合的vision encoder&#xf…

MATLAB - 模型预测控制(MPC)使用 ADMM 求解器四分之一汽车悬架悬挂系统动力学控制

系列文章目录 目录 系列文章目录 前言 一、四分车悬架模型 二、道路干扰剖面 三、设计模型预测控制器 四、设置优化求解器 五、辅助函数 前言 本例展示了如何为四分之一汽车悬架系统设计模型预测控制器 (MPC)&#xff0c;采用乘法交替方向法 (ADMM) 求解器来控制主动悬架…

基于多模态融合算法的航空武器毁伤评估技术方案

基于多模态融合算法的航空武器毁伤评估技术方案 1. 引言 航空武器毁伤评估(Damage Assessment, DA)是现代战争中的关键环节,直接影响后续作战决策。传统的人工评估方式效率低、主观性强,且在高强度战场环境下难以实时完成。因此,本研究提出一种基于多模态融合算法的自动…

LeetCode算法题(Go语言实现)_49

题目 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 一、代码实现&#xff08;快速选择…