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

目录

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.rhkb.cn/news/297373.html

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

相关文章

VMware虚拟机安装Linux教程

以管理员身份运行VMware 按一下win键不然显示不全 重启即可。

什么是智慧公厕?智慧旅游下的智慧公厕功能和特点

智慧旅游下的智慧公厕功能和特点&#xff1f;智慧旅游是景区、公园、游乐场、文化场馆等领域的一种信息化解决方案&#xff0c;智慧公厕是智慧旅游极为重要的一部分&#xff0c;能大大提升游客满意度。智慧公厕采用物联网、互联网、大数据、云计算等技术&#xff0c;实现旅游景…

【Spring实战项目】SpringBoot3整合WebSocket+拦截器实现登录验证!从原理到实战

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

picGo图床搭建gitee和smms(建议使用)

picGoGitee 这个需要下载gitee插件, 因为官方频繁的检索文件类型, 有时候也会失效 如果没有特殊要求平时存个学习的要看图中文字的重要的图片建议就是smms, 免费也够用! 图片存本地不方便, 各种APP中来回传还会失帧损失画质, 所以你值得往下看 picGosmms 建议使用这个, sm…

Linux gcc day3

find命令&#xff08;importance&#xff09;&#xff1a; 语法&#xff1a;find pathname -options find /root -name test.c which命令&#xff1a; which [指令] 只搜索指令&#xff0c;在什么位置下 为什么文件夹带有颜色呢&#xff1f; 科普补充alias命令&#xff1a; ali…

银行数字化转型导师坚鹏:银行数字化转型给分行带来的8大价值

银行数字化转型给分行带来的8大价值 银行数字化转型对不仅对总行产生了深远影响、给总行带来了新质生产力&#xff0c;对分行也会产生重要价值&#xff0c;银行数字化转型导师坚鹏从以下8个方面进行详细分析&#xff0c;相信能够给您带来重要启发&#xff0c;从而加速银行分行…

精读 Generating Mammography Reports from Multi-view Mammograms with BERT

精读&#xff08;非常推荐&#xff09; Generating Mammography Reports from Multi-view Mammograms with BERT&#xff08;上&#xff09; 这里的作者有个叫 Ilya 的吓坏我了 1. Abstract Writing mammography reports can be errorprone and time-consuming for radiolog…

clickhouse 源码编译部署

clickhouse 源码编译部署 版本 21.7.9.7 点击build project&#xff0c;编译工程&#xff0c;经过一定时间&#xff08;第一次编译可能几个小时&#xff0c;后续再编译&#xff0c;只编译有改动的文件&#xff09;生成release目录 在cmake-build-release → programs目录下…

Java集合(个人整理笔记)

目录 1. 常见的集合有哪些&#xff1f; 2. 线程安全的集合有哪些&#xff1f;线程不安全的呢&#xff1f; 3. Arraylist与 LinkedList 异同点&#xff1f; 4. ArrayList 与 Vector 区别&#xff1f; 5. Array 和 ArrayList 有什么区别&#xff1f;什么时候该应 Array而不是…

STM32L4R9 的 QuadSPI Flash 通讯速率不理想

1. 引言 客户反应 STM32L4R9 同 QSPI Flash 通讯&#xff0c;测出来的读取速率为 10MB/s&#xff0c; 和理论值相差较大。 2. 问题分析 按照客户的时钟配置和 STM32L4R9 的数据手册中的数据&#xff0c;OSPI 读数速率为 10MB/s 肯定存在问题。同时我们也可以在 AN4760 应用手…

c++20协程详解(三)

前言 前面两节我们已经能够实现一个可用的协程框架了。但我们一定还想更深入的了解协程&#xff0c;于是我们就想尝试下能不能co_await一个协程。下面会涉及到部分模板编程的知识&#xff0c;主要包括&#xff08;模板偏特化&#xff0c;模板参数列表传值&#xff0c;模板函数…

理论实践-CPU性能监控工具-uptime-mpstat-pidstat-vmstat-top-ps-perf

CPU 性能工具。 首先&#xff0c;平均负载的案例。我们先用 uptime&#xff0c; 查看了系统的平均负载&#xff1b;而在平均负载升高后&#xff0c;又用 mpstat 和 pidstat &#xff0c;分别观察了每个 CPU 和每个进程 CPU 的使用情况&#xff0c;进而找出了导致平均负载升高的…

risc-v向量扩展strlen方法学习

riscv向量文档中给出了strlen的实现&#xff0c; 大概是这么一个思路&#xff0c; 加载向量: 使用向量加载指令&#xff08;如 vload&#xff09;从内存中加载一个向量长度的字符。比较向量与零: 使用向量比较指令&#xff08;如 vmask 或 vcmpeq&#xff09;来检查向量中的每…

【Spring篇】Spring IoC DI

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Spring系列】 本专栏旨在分享学习Spring MVC的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 前言一、IoC二、…

HTMLCSSJS

HTML基本结构 <html><head><title>标题</title></head><body>页面内容</body> </html> html是一棵DOM树, html是根标签, head和body是兄弟标签, body包括内容相关, head包含对内容的编写相关, title 与标题有关.类似html这种…

STM32-05基于HAL库(CubeMX+MDK+Proteus)串行通信案例(中断方式接收命令)

文章目录 一、功能需求分析二、Proteus绘制电路原理图三、STMCubeMX 配置引脚及模式&#xff0c;生成代码四、MDK打开生成项目&#xff0c;编写HAL库的功能代码五、运行仿真程序&#xff0c;调试代码 一、功能需求分析 在中断机制实现按键检测的案例之后&#xff0c;我们介绍串…

Flink运行机制相关概念介绍

Flink运行机制相关概念介绍 1. 流式计算和批处理2. 流式计算的状态与容错3. Flink简介及其在业务系统中的位置4. Flink模型5. Flink的架构6. Flink的重要概念7. Flink的状态、状态分区、状态缩放&#xff08;rescale&#xff09;和Key Group8. Flink数据交换9. 时间语义10. 水位…

sky06笔记下

1.边沿检测 检测输入信号din的上升沿&#xff0c;并输出pulse module edge_check ( clk, rstn, din, pulse ); input wire clk,rstn; input wire din; output reg pulse;wire din_dly;always (posedge clk or negedge rstn)beginif(!rstn)din_dly < 1b0;elsedin_dly < d…

【Qt】:常用控件(四:显示类控件)

常用控件 一.Lable二.LCD Number 一.Lable QLabel 可以⽤来显⽰⽂本和图⽚. 代码⽰例:显⽰不同格式的⽂本 代码⽰例:显⽰图⽚ 此时,如果拖动窗⼝⼤⼩,可以看到图⽚并不会随着窗⼝⼤⼩的改变⽽同步变化 为了解决这个问题,可以在Widget中重写resizeEvent函数。当用户把窗口从A拖…

【Android、 kotlin】kotlin学习笔记

基本语法 fun main(){val a2var b "Hello"println("$ (a - 1} $b Kotlin!")} Variables 只赋值一次用val read-only variables with val 赋值多次用var mutable variables with var Standard output printin() and print() functions String templ…