蓝桥杯历年真题练习1 —— 日期统计(填空题)

问题描述:


解答:

采用暴力枚举

#include <stdio.h>

int main()
{
    int arry[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 };
    int ans = 0;

    for (int mouth = 1;mouth <= 12;++mouth)
    {
        for (int day = 1;day <= daysInMonth[mouth];++day)
        {
            int dataSeq[8] = { 2,0,2,3,mouth / 10,mouth % 10,day / 10,day % 10 };
            int k = 0;

            for (int i = 0;i < 100;++i)
            {
                if (arry[i] == dataSeq[k])
                {
                    ++k;
                    if (k == 8)
                    {
                        ans++;
                        break;
                    }
                }
            }
        }
    }

    printf("%d\n", ans);
    return 0;
};



运行结果:


要点解析:

1. 大批量数值增添英文逗号“,”分割创建数组

int arry[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
    };

 新建excel表格 —— copy全部数字到任意单元格 —— “数据”-“分列”-“分隔符号”-“空格”

插入函数“TEXTJION” —— 选中已完成分列的数字行 —— 分隔符号“,”即可 

2. 由题数据为2023年,创建该年每月最大日期数为数组,注意为方便解答,数组1~12为月份最大日期数,0随即设为‘0’
int daysInMonth[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

3. 依次进行8个数字的比对,得出的月份、日期有大于等于10的情况,统一进行取整、求余得到8个符合题意的8个数字,注意“break”必须要加,否则无法正确退出循环
int ans = 0;

for (int mouth = 1;mouth <= 12;++mouth)
{
    for (int day = 1;day <= daysInMonth[mouth];++day)
    {
        int dataSeq[8] = { 2,0,2,3,mouth / 10,mouth % 10,day / 10,day % 10 };
        int k = 0;

        for (int i = 0;i < 100;++i)
        {
            if (arry[i] == dataSeq[k])
            {
                ++k;
                if (k == 8)
                {
                    ans++;
                    break;
                }
            }
        }
    }
}

 * 欢迎留言讨论~ 

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯是一项软件竞赛,其中包含了多道编程题目。选手需要在规定的时间内完成题目,并通过浏览器方式提交答案。题目类型包括结果填空和程序设计。结果填空题要求选手根据题目描述直接填写结果,而程序设计题要求选手设计程序来得出正确的输出结果。选手的程序必须符合GNU C/C++标准,不能使用与操作系统相关的API。\[1\] 关于历年真题,蓝桥杯的题目涵盖了各个难度级别,考察的内容包括算法理解、编程基本功和编码熟练度。对于不熟悉编程的人来说,可能会感到困难。蓝桥杯与ACM、CCSP等竞赛相比,更注重编程基本功的考察。\[2\] 关于具体的题目内容,根据提供的引用,题目A是关于排列字母的题目,题目B是关于特殊时间的题目。而题目C、D、E、F、G、H、I、J的具体内容没有提供。\[3\] 对于题目C、D、E、F、G、H、I、J的具体答案,没有提供相关信息。\[3\] 所以,无法提供蓝桥杯历年真题的具体内容和答案。如果您需要获取历年真题的详细内容和答案,建议您参考蓝桥杯官方网站或相关资料。 #### 引用[.reference_title] - *1* *2* *3* [2022年4月第十三届蓝桥杯省赛C组C语言/C++真题及答案](https://blog.csdn.net/weixin_47964723/article/details/124064440)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值