蓝桥杯 --- 日期问题模板

目录

1.如何判断闰年

2.如何遍历当前年份的每一天

3.如果想要输出某一年某一天到某一年某一天之间一共有多少天。

4.精确到具体周几到周几的问题分析

5.如何直接通过一层for循环枚举年月日

习题:


蓝桥杯竞赛特别喜欢考日期问题,今天给大家分享一下日期题的一些解题模板。

1.如何判断闰年

bool judge(int year)
{if((year % 4 == 0 && year % 100!= 0) || year % 400 == 0)return true;else  return false;
}

2.如何遍历当前年份的每一天

首先判断是否为闰年,其次定义一个数组来存储每个月份最多有多少天,并根据是否为闰年进行修改。

#include <iostream>
using namespace std;
bool judge(int year)
{if((year % 4 == 0 && year % 100!= 0) || year % 400 == 0)return true;else  return false;
}	
int data[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{int year;cin >> year;if(judge(year))data[2] = 29;for(int month = 1;month <= 12;month++){for(int day = 1;day <= data[month];day++){//加入判定条件(根据题意来分析)//....}}return 0;
}

3.如果想要输出某一年某一天到某一年某一天之间一共有多少天。

如果想计算1921-07-23十二点 ~ 2020-07-01十二点之间共有多少天?

先将整年的加和,然后加零散的月份及天数。

#include <iostream>
using namespace std;
const int N = 1000;
int day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int time;
int judge(int year)
{if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return 366;return 365;
}
//1921-07-23 ~ 2020-07-01
int main()
{for(int i = 1922;i <= 2019;i++){time += judge(i);}time += 10;for(int i = 1;i <= 12;i++)//这里因为七月份不完整,所以不单独计算{if(i == 7)  continue;//也可以直接自己算出除了七月的剩余天数,可以减少时间浪费time += day[i];}cout << time << ' ';cout << time * 24 * 60;//输出共有多少秒return 0;
}

4.精确到具体周几到周几的问题分析

这里给大家带来蓝桥杯省赛---跑步训练

 对于星期问题,我们可以通过先设定开始星期mon = 6,然后再循环内部加入判定条件

if(mon == 8)  mon = 1;//如果mon++使mon到星期八,这时候让mon赋值为星期一
if(mon == 1 && data == 1)  sum += 2;//月初需要跑2km
else if(mon == 1 || data == 1)  sum += 2;//周一或者月初需要跑2km
else  sum += 1;			
if(i == 2020 && month == 10 && data == 1)//到达指定日期,直接输出并直接结束循环
{cout << sum;return 0;
}
mon++;

上面是判断星期的方式,无非就是注意星期八改成星期一,其他的部分照常利用年月日三重循环进行枚举 

#include <iostream>
using namespace std;
//2000-01-01(Saturday) ~ 2020-10-01(Thurday),其中某天周一或者月初(1日)要跑2km,其余时间跑1km
int day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool judge(int year)
{if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return true;return false;
}
int main()
{int sum = 0;int mon = 6;for(int i = 2000;i <= 2020;i++){if(judge(i))  day[2] = 29;else  day[2] = 28;for(int month = 1;month <= 12;month++){for(int data = 1;data <= day[month];data++){if(mon == 8)  mon = 1;if(mon == 1 && data == 1)  sum += 2;else if(mon == 1 || data == 1)  sum += 2;else  sum += 1;if(i == 2020 && month == 10 && data == 1){cout << sum;return 0;}mon++;}}}
}

5.如何直接通过一层for循环枚举年月日

这里就需要除法的运算:

for(int i = 19491001;i <= 20240413;i++)
{int year = i / 10000;int month = i % 10000 / 100;//也可以这样写:int month = i / 100 % 100;int day = i % 100;//...
}

习题:

这里给大家带来的是蓝桥杯C++B组题---日期统计

很明显,这题咱们只需要利用遍历月日,然后在其内部加入循环遍历数组找到其相同的日期。

#include <iostream>
using namespace std;
const int N = 1000;
int main()
{int array[100] = {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6, 8, 6, 3, 3,8, 5, 1, 6, 3, 4, 6, 7, 0, 7, 8, 2, 7, 6, 8, 9, 5, 6, 5, 6,1, 4, 0, 1, 0, 0, 9, 4, 8, 0, 9, 1, 2, 8, 5, 0, 2, 5, 3, 3};int daymonth[13] = {0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31};	   int res = 0;for(int month = 1;month <= 12;month++){for(int day = 1;day <= daymonth[month];day++){int time[8] = {2 , 0 , 2 , 3 , month / 10 , month % 10 , day / 10 , day % 10};//这里可以利用数组记录当前枚举的年月日,以便于后面便利100数组找到相同日期int a = 0;for(int k = 0;k < 100;k++){if(array[k] == time[a]){a++;}if(a == 8){res++;break;}   }}} cout << res << endl;return 0;
}

 好了,以上是我现已做过蓝桥杯有关日期问题的一些解题技巧,欢迎各位大佬分享自己的一些解题方法,感谢收看,记得三连支持。

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

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

相关文章

EfficientVMamba实战:使用 EfficientVMamba实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

HarmonyOS(鸿蒙)——单击事件

2.4 实现ClickedListener接口并重写onClick方法 2.5 实现onClick方法中的具体逻辑&#xff0c;以此完成点击事件的相关业务操作 三、测试 3.1 登录远程模拟器 3.2 运行项目 四、精选好文 一、简介 1.1 什么是组件 组件就是文本、按钮、图片等元素的统称 1.2 什么是事件 …

grep无法使用完整的正则表达式

问题描述 grep无法使用完整的正则表达式&#xff0c;比如前置断言、后置断言、\d和\t、\n等 问题原因 使用了扩展正则&#xff0c;而不是perl正则。规则和perl正则不同 从文档上讲得很清楚&#xff1a; -E PATTERN is an extended regular expression 他是扩展表达式&#…

C++ 不同进制数的表示和转换

在 C++ 中,可以使用不同的方式来表示和转换不同进制数,包括二进制、八进制、十进制和十六进制。 1. 不同进制数的表示 #include <iostream>int main() {int binary = 0b1010; // 二进制,以 0b 或者 0B 开头int octal = 012; // 八进制,以 0 开头int decimal =…

AI编程005/ 逆向生成mysql的建表语句

1/ 通过insert into 语句生成建表语句 有些时候我们能获取到表的insert语句&#xff0c;但是没有表结构。我们可以借助AI工具&#xff0c;让其逆向生成mysql的建表语句。 提示词如下&#xff1a; 根据下面的SQL语句&#xff0c;逆向生存mysql的建表语句&#xff0c;每个字段…

Elasticsearch 8.x ELK 搭建并配置 SSL

说明&#xff1a;这只是本人在家里组网搭建的集群&#xff0c;所以内容排版可能比较随意了&#xff0c;没有耐心的同学直接跳过去看别的文章吧&#xff0c;我只是放在这里留作记录方便以后翻阅 ELK 的坑实在太多了&#xff0c;自己在物理机(多台)逐渐摸索的&#xff0c;安装最新…

洞察规则与人情:游走于无形的智者

在这个纷繁复杂的世界里&#xff0c;规则和人情构成了我们日常生活的框架和纽带。然而&#xff0c;有些人似乎拥有一种特殊的能力&#xff0c;他们能够洞察这些规则和人情的本质&#xff0c;甚至能够在一定程度上操纵和改变它们。这些人&#xff0c;我们可以称他们为游走于无形…

一文掌握线程池实现原理

线程池简介 Java在使用线程执行程序时&#xff0c;需要调用操作系统内核的API创建一个内核线程&#xff0c;操作系统要为线程分配一系列的资源&#xff1b;当该Java线程被终止时&#xff0c;对应的内核线程也会被回收。因此&#xff0c;频繁的创建和销毁线程需要消耗大量资源。…

提高空调压缩机能效的通用方法

压缩机的能效提高主要依靠技术改进而不是大幅度增加材料的消耗&#xff0c;这也是技术经济性最好的节能手段。 1、改进电机效率&#xff0c;电机效率的提高意味着压缩机电效率的提高和压缩机总体效率的提高&#xff1b; 1.1、降低定子铜耗 降低定子绕组中电流通过所产生的铜耗…

Android Studio下载及安装和Gradle的配置(非常详细)从零基础入门到精通,看完这一篇就够了

文章目录 下载安装修改Sdk的位置创建项目修改Gradle的位置查看AS版本工具栏–View项工具栏–Build下的功能说明Build Variants视图说明下载模拟器&#xff08;avd&#xff09;/安卓虚拟设备 屏幕熄灭功能关闭虚拟设备功能删除自己开发的应用软件将开发的应用运行到虚拟设备上。…

如何快速写出漂亮的Button按钮呢?

你是否曾在浏览网页时&#xff0c;被那些色彩鲜艳、功能多样的按钮所吸引&#xff1f;无论是提交表单&#xff0c;还是触发一个动作&#xff0c;按钮都扮演着不可或缺的角色。今天聊聊网页设计中的 <button> 标签。 1. 基础语法 什么是 <button> 标签 <butto…

GIS水文分析计算流向学习

1 初步操作 流向&#xff0c;即水文表面水的流向&#xff1b; 水文分析的很多功能需要基于流向栅格&#xff1b; 在 SuperMap 中&#xff0c;对中心栅格的8个邻域栅格进行编码&#xff1b; 每一个中心栅格的水流方向都由这八个值中的某一个值来确定&#xff1b; 我还没弄懂水…

在 Git Bash 中调整字体大小,可以按照以下步骤进行操作,注意这里是linux虚拟机,命令都是Linux方式的

在 Git Bash 中调整字体大小&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开 Git Bash 终端。 在终端中&#xff0c;点击顶部菜单栏的 "Options"&#xff08;选项&#xff09;。 在弹出的下拉菜单中&#xff0c;选择“text”文本 右侧font那里&#xf…

VUE3和SpringBoot实现ChatGPT页面打字效果SSE流式数据展示

在做这个功能之前&#xff0c;本人也是走了很多弯路&#xff08;花了好几天才搞好&#xff09;&#xff0c;你能看到本篇博文&#xff0c;那你就是找对地方了。百度上很多都是使用SseEmitter这种方式&#xff0c;这种方式使用的是websocket&#xff0c;使用这种方式就搞复杂了&…

《QT实用小工具·九》设备按钮控件

1、概述 源码放在文章末尾 该项目实现了设备按钮控件&#xff0c;主要包含如下功能&#xff1a; 可设置按钮样式 圆形、警察、气泡、气泡2、消息、消息2。可设置按钮颜色 布防、撤防、报警、旁路、故障。可设置报警切换及对应报警切换的颜色。可设置显示的防区号。可设置是否…

PAC性能开销权衡及优化措施

PAC性能开销&#xff1f;如何进行优化&#xff1f;本博客探讨这些问题。

《机器学习算法面试宝典》正式发布!

大家好&#xff0c;历时半年的梳理和修改&#xff0c;《机器学习算法面试宝典》&#xff08;以下简称《算法面试宝典》&#xff09;终于可以跟大家见面了。 近年来&#xff0c;很多理科专业学生也纷纷转入算法赛道&#xff0c;特别是最近 ChatGPT 的爆火&#xff0c;推动了AI …

域名如何端口映射?

域名端口映射是一种重要的网络技术&#xff0c;它可以实现不同设备之间的远程通信。在全球互联网的背景下&#xff0c;人们之间的通信变得非常便捷&#xff0c;但随之而来的问题是如何有效地实现设备之间的互联互通。域名端口映射正是为了解决这个问题而出现的。 天联组网 天联…

Linux-程序地址空间

目录 1. 程序地址空间分布 2. 两个问题 3. 虚拟地址和物理地址 4. 页表 5. 解决问题 6. 为什么要有地址空间 1. 程序地址空间分布 测试一下&#xff1a; #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h>int ga…

机器学习——卷积的变种

机器学习——卷积的变种 卷积神经网络&#xff08;Convolutional Neural Networks, CNNs&#xff09;是深度学习领域中最重要的技术之一&#xff0c;它在图像处理、语音识别、自然语言处理等领域取得了巨大成功。在CNN中&#xff0c;卷积层是最核心的组成部分之一&#xff0c;…