蓝桥杯:日期统计讲解(C++)

日期统计

本题来自于:2023年十四届省赛大学B组真题

主要考察:暴力。

代码放在下面,代码中重要的细节全都写了注释,非常清晰明了:

cpp 复制代码
#include <bits/stdc++.h>  //万能头文件
using namespace std;

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 daysInMonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    //2023年每月的天数,电脑上自带日期,可以随便查   ,0索引不用,从1索引开始用,代表1月份
    int ans = 0;  //记录符合条件的日期

    for (int month = 1; month <= 12; ++month) {  //2023年已经确定,从月份开始
        for (int day = 1; day <= daysInMonth[month]; ++day) {//每个月的天数
            int dateSeq[8] = {2, 0, 2, 3, month / 10, month % 10, day / 10, day % 10};//用数组保存长度为8的日期
            int k = 0;   
            for (int i = 0; i < 100; ++i) {//i < 100 ,代表要开始遍历数组了(arr数组)
                if (array[i] == dateSeq[k]) {
                    ++k;
                    if (k == 8) {
                        ans++;
                        break;
                    }
                }
            }
        }
    }
    cout << ans;  //把结果输出
    return 0;
}
相关推荐
csdn_aspnet11 小时前
Java 霍尔分区算法(Hoare‘s Partition Algorithm)
java·开发语言·算法
王老师青少年编程11 小时前
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝核心思想 )
c++·dfs·csp·信奥赛·搜索剪枝·搜索优化
一拳一个呆瓜11 小时前
【STL】使用 C++ 标准库标头
c++·stl
诸葛务农11 小时前
道路行驶条件下电动汽车永磁电机的有效使用寿命及永磁体的失效和回收再利用(下)
java·开发语言·算法
snow@li11 小时前
AI:理解 大数据、算法、算力、电力、生成式AI、token 之间的关系
大数据·人工智能·算法
小智老师PMP12 小时前
零基础能不能考PMP?零基础专属学习路径+全套扶持体系
学习·算法·职场和发展·软件工程·求职招聘·敏捷流程
王老师青少年编程12 小时前
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝案例实践2)
c++·信奥赛·csp-s·提高组·搜索剪枝·生日蛋糕·最优性剪枝
Dillon Dong12 小时前
【风电控制】FPGA采集Vdc的ADC增益系数解析——从数字码到实际电压的桥梁
算法·fpga开发·变流器·风电控制
c++之路12 小时前
C++ 设计模式全总结
java·c++·设计模式
TDengine (老段)12 小时前
TDengine 压缩编码机制 — 双层压缩架构与类型特化算法
大数据·数据库·物联网·算法·时序数据库·tdengine·涛思数据