DianNier  

1. 题解
(1)我们要求2022年有多少个顺子日期,首先就要知道2022年有多少天。对于普通年来说,能被 4 整除且不能被 100 整除的是闰年;对于世纪年来说,能被 400 整除的是闰年。由此可知2022年不是闰年,即2月有28天,即一年有365天。
(2)要求2022整年有多少个顺子日期就要从2022年的第一天遍历到2022年的最后一天,就要用到循环求这个日期的八位数字,用大小为8的整型数组q来存放八位日期以便后面来判断这日期是否为顺子日期。
(3)判断日期是否为顺子日期,即八位数字里面是否存在3个连续数字,321这种逆序的不是顺子,顺子可以包含0。
2. 代码

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 
bool check(int q[]){
    for(int i=3;i<=5;i++)
      if(q[i]==(q[i+1]-1)&&q[i+1]==(q[i+2]-1)){ 
        return true;
      }
    return false;
}
int main()
{ 
  ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
  int q[8]={2,0,2,2};
  int res=0;
  for(int i=1;i<=12;i++){
      q[4]=i/10;
      q[5]=i%10;
      for(int j=1;j<=day[i];j++){
          q[6]=j/10;
          q[7]=j%10;
          if(check(q)){
            res++;
            // for(int i=0;i<8;i++)cout<<q[i]<<" ";
            // cout<<endl;
          }
      }
    }
    cout<<res;
  return 0;
posted on 2024-02-26 21:36  芭娜娜banana  阅读(102)  评论(0)    收藏  举报