这道题怎么写???
  • 板块学术版
  • 楼主Notch_Him
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/19 19:18
  • 上次更新2023/11/19 21:11:04
查看原帖
这道题怎么写???
1070413
Notch_Him楼主2023/11/19 19:18

日期 描述

我们可以将一个日期的年月日直接相连,写成一个字符串的形式,例如 2023 年 11 月 12 日可以写作 20231112 20231112。

我们定义,一个日期对应的字符串如果包含 202 202 作为它的子串(也就是连续的一段)那么这个日期就是特殊的。例如 202 ‾ 30 202 ‾ , 201 202 ‾ 29 202 ​ 30 202 ​ ,201 202 ​ 29 是特殊的,而 30201203 , 22000222 30201203,22000222 不是特殊的。

现在给定两个年份 � l 和 � r,请问从 � l 年 1 月 1 日到 � r 年 12 月 31 日之间的所有日期中,有多少个日期是特殊的?

普通年份每个月的天数分别为: 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 31,28,31,30,31,30,31,31,30,31,30,31。

闰年的 2 月有 29 29 天,其他月份和普通年份一样,闰年的判断方式:

  • 如果一个年份是 400 400 的倍数,那么它是闰年。

  • 如果一个年份是 4 4 的倍数且它不是 100 100 的倍数,那么它是闰年。

  • 否则它不是闰年。

输入 一行两个整数 � , � l,r。

输出 一行一个整数代表答案。

输入样例 1

2020 2020 输出样例 1

366 输入样例 2

2121 2121 输出样例 2

2 输入样例 3

2000 9999 输出样例 3

44294 提示

对于 50 % 50% 的数据 �

� l=r 对于 100 % 100% 的数据 2000 ≤ � ≤ � ≤ 9999 2000≤l≤r≤9999 样例 1 解释:由于 202 ‾ 0 202 ​ 0 年每一天都是特殊的。 // // //

#include <bits/stdc++.h>
using namespace std;
int main() {
	int l,r;
	cin>>l>>r;
	int f=0;
	if(l%400==0||(l%4==0&&l%100!=0)){
		f=1;
	} 
	if(l==2021||l==2022||l==2023||l==2024||l==2025||l==2026||l==2027||l==2028||l==2029||l==2020||l==1202||l==2202||l==3202||l==4202||l==5202||l==6202||l==7202||l==8202||l==9202){
		if(f=1){
			cout<<366;
		}
		if(f=0){
			cout<<365;
		}
	}
    return 0;
}
//c++代码
2023/11/19 19:18
加载中...