D - AD 2020
题目大意:
多组输入。
每组给出起始日期和终止日期,我们需要把年月日合成的日期当成字符串并且判断这个字符串里面有没有202这个子串。然后判断在起始日期和终止日期之间有多少个有202这个子串的日期。
思路:
对于完整的年份,当我们知道他是多少年的时候,就已经知道他有多少个含有“202”的日期了。对于不完整的年份,就暴力遍历每一天,不然的话情况太复杂了。
AC代码:
#include <bits/stdc++.h>
using namespace std;
int run(int y){
//判断是不是闰年
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
return 0;
}
int nian(int y)
{
if(y/10==202||y%1000==202)//202几年和1202,2202,3202,202等年
return 1;
if(y%10==2)//***2年
return 2;
else
return 0;
}
int yue(int x,int y)
{
if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)//天数为31天的月
return 31;
if(y==2)//2月
{
if((x%4==0&&x%100!=0)||x%400==0)//闰年二月29天
return 29;
else
return 28;
}
return 30;//其他天数为30的月
}
int ff(int x,int y,int z