题目
求从1900年1月1日到1900+n-1年12月31日
x月13日星期一至星期日有多少天,记住:从周六开始输出。
分析
模拟,注意闰年
代码
#include <cstdio>
using namespace std;
const int date[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int n,m=1899,ans=0,w[7];
int main(){
scanf("%d",&n);
while (n--){
m++;
for (int i=1;i<13;i++){
w[ans=(ans+6)%7]++;//从x月1日到x月13日到星期几
ans=(ans+date[i]-13+(i==2&&(m%4==0&&m%100!=0||m%400==0)))%7;//到月底(闰年)到星期几
}
}
for (int i=6;i<=12;i++) printf("%d ",w[i%7]);
return 0;
}