首页 > 编程语言 >蓝桥杯 易错题 特殊时间 c++

蓝桥杯 易错题 特殊时间 c++

时间:2023-01-27 21:57:00浏览次数:48  
标签:11 10 22 int c++ 蓝桥 错题 num &&

问题描述
2022 年 2 月 22 日 22:20 是一个很有意义的时间,
年份为 2022,由 3 个 2 和 1 个 0 组成,
如果将月和日写成 4 位,为 0222,也是由 3 个 2 和 1 个 0 组成,
如果将时间中的时和分写成 4 位,还是由 3 个 2 和 1 个 0 组成。

小蓝对这样的时间很感兴趣,他还找到了其它类似的例子,比如 111 年 10 月 11 日 01:11,2202 年 2 月 22 日 22:02 等等。

请问,总共有多少个时间是这种年份写成 4 位、月日写成 4 位、时间写成4 位后由 3 个一种数字和 1 个另一种数字组成。注意 1111 年 11 月 11 日11:11不算,因为它里面没有两种数字。
解题思路 首先观察题目发现无需判断闰年,因为当日到29,无法构成合法的日期 如2229和9929,年也无需判断 我们开了一个含4个int数组,每个数字不超过9,无需担心年份的大小问题。我想便利每一种情况,判断时间的合理性,

时间复杂度较低,合理的时间记录下来,根据count=合法的年的个数*合法的月日的个数*合法的小时分钟个数得到结果

答案是212

 1 #include <iostream>
 2 int num[4],count;
 3 using namespace std;
 4 void check(int &y, int &m, int &h){
 5     int year = num[0] * 1000 + num[1] * 100 + num[2] * 10 + num[3];
 6     int month = num[0] * 10 + num[1];
 7     int day = num[2] * 10 + num[3];
 8     int hour = month;
 9     int minute = day;
10     if(year > 0 && year<=9999)
11     y++;
12     if(month > 0 && month < 13 && day > 0 && day < 31)
13     m++;
14     if(hour > 0 && hour < 25 && minute >= 0 && minute < 60)
15     h++;
16 }
17 int main()
18 {
19      for (int i = 0; i < 10; i++)
20     {
21         for (int j = 0; j < 10; j++)    
22         {
23             if(i == j) continue;
24             int y = 0, m = 0, h = 0;    
25             for (int k = 0; k < 4; k++)
26             {
27                 num[k] = i;
28                 num[(k + 1) % 4] = num[(k + 2) % 4] = num[(k + 3) % 4] = j;
29                 check(y, m, h);
30             }
31             count += y * m * h;    
32         }
33     }
34     cout<<count<<endl;
35     return 0;
36 }

 

标签:11,10,22,int,c++,蓝桥,错题,num,&&
From: https://www.cnblogs.com/jszs0013/p/17069396.html

相关文章

  • C++Day13 tinyxml2解析rss文件
    一、任务与思路使用tinyxml解析rss文件,使用std::regex(正则表达式)去除html标签,并生成一个pagelib.txt,格式如下<doc><docid>1</docid><title>...</title><......
  • 用VC++访问XML文件
    用微软的DOM,MSXML4//引入msxml4.dll#import"C:/WINNT.0/system32/msxml4.dll"//创建XMLDOMDocument指针MSXML2::IXMLDOMDocumentPtrpXMLDoc;//初始化COM接口::C......
  • Xmake v2.7.6 发布,新增 Verilog 和 C++ Modules 分发支持
    Xmake是一个基于Lua的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了Lua运行时。它使用xmake.lua维护项目构建,相比makefile/CMakeLists.txt,配置语......
  • C/C++工业数据分析与文件信息管理系统
    C/C++工业数据分析与文件信息管理系统大连理工大学《程序设计基础A课程设计》设计报告工业数据分析与文件信息管理系统学生姓名:院系、班级:学号:联系电......
  • C++算术计算器[2023-01-27]
    C++算术计算器[2023-01-27]面向对象程序设计C++作业考核一、考核内容使用C++语言,设计开发一个算术计算器,能够根据用户输入计算输出表达式结果。二、基本要求1.能够支......
  • c++ 利用开发人员命令提示工具查看对象模型
      1.跳转盘符   C:           //(以C盘为例,文件储存在哪盘跳转哪盘)例:  2.跳转文件路径cd具体路径例:      ......
  • c++语法 继承——虚基类
        #include<iostream>usingnamespacestd;classAnimal{public: intm_age;};classSheep:virtualpublicAnimal{};classTuo:virtualpublicAnimal{};c......
  • Luogu P8773 [蓝桥杯 2022 省 A] 选数异或
    https://www.luogu.com.cn/problem/P8773因为\(a\texttt{xor}b=c\)则\(a\texttt{xor}c=b\),对于\(a_i\)找到\(a_i\texttt{xor}x\)离其最近的位置,放在ST......
  • 关于#c++#的问题,如何解决
    提问: 又出了另一个错:```c++#include<iostream>#include<stdio.h>#include<algorithm>intco=0;usingnamespacestd;charb[10000000];intmain(){......
  • 如何在WINDOWS下编译BOOST C++库
    如何在WINDOWS下编译BOOSTC++库cheungmine2008-6-25 写出来,怕自己以后忘记了,也为初学者参考。使用VC8.0和boost1.35.0。 1)下载boost​​​http://www.boost.o......