P1202 [USACO1.1]黑色星期五Friday the Thirteenth - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc++.h>
using namespace std;
int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool isLeapYear(int x)
{
return (x % 400 == 0 || (x % 4 == 0 && x % 100 != 0));
}
int d[10];
int main()
{
int n;
scanf("%d",&n);
int start = 0;//周一
for(int y = 1900; y <= 1900 + n - 1; y++)
{
if(isLeapYear(y)) months[2] = 29;
else months[2] = 28;
for(int m = 1; m <= 12; m++)
{
d[(start + 13) % 7]++; // 每个月的13号是周几
start += months[m];//加上这个月的天数
}
}
printf("%d ",d[6]);
for(int i = 0; i < 6; i++)
printf("%d ",d[i]);
return 0;
}