#include <iostream>
using namespace std;
//0->日 1->一 2->二 3->三 4->四 5->五 6->六
int main()
{
//int ori = 0;
//ori = 31+28+31+30+31+30+31+31+30+31+30+31;//正常年份的一年总数
int mon[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int a[7] = {0};
int n;
scanf("%d",&n);
int first = 1;//每一年的第一天的星期
///*
for(int i=0;i<n;i++)
{
int now = 1900+i;//当前年份
int f = 0;
if(now%4 == 0 && now % 100 != 0 || now % 400 == 0)
f = 1;
for(int j=0;j<12;j++)
{
int k = (first + (13-1)%7)%7;
a[k]++;
first = (first + (mon[j])%7)%7;
if(j == 1 && f == 1)
first = (first+1)%7;
//printf(">>%d<<\n",k);
}
}
//*/
for(int i=0;i < 7;i++)
{
printf("%d%c",a[(i+6)%7]," \n"[i == 6]);
}
return 0;
}
模拟…
注意一下取余的细节就行