【题目描述】 西方人也有不喜欢的数字,那就是数字 13,很多西方人认为数字 13 不吉利,同 时也不太喜欢星期五。据说之所以不喜欢 13 和星期五,是因为与基督教有关系,例 如耶稣遇难日就是星期五。因此,当 13 和星期 5 遇到一起,被称为黑色星期五。请 编写一程序,输入一个年份数(0<年份数<5000),输出这个年里有黑色星期五的天 数。 例如:输入 2024,则输出 2,因为 2024 年有两个月是黑色星期五,分别是 9 月 13 日和 12 月 13 日。
【输入格式】 输入一行,只有一个正整数,表示要求解的年份,年份数小于 5000。
【输出格式】 输出一行,一个数,表示输入的年份数中有几个月有黑色星期五。
【样例输入】 2024
【样例输出】 2
#include<bits/stdc++.h>
using namespace std;
int main(void){
int n;
cin>>n;
int i,j;
int t[2][13]{
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},
};
int day=0,f;
for(i=1998;i<n;i++){
f=((i%4==0&&i%100!=0)||(i%400==0));
if(f){
day+=366;
}else{
day+=365;
}
}
f=((i%4==0&&i%100!=0)||(i%400==0));
int cnt=0;
for(int i=1;i<=13;i++){
day+=t[f][i-1];
if((day+13)%7==2){
cnt++;
}
}
cout<<cnt;
return 0;
}