题目描述
13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400.
输入格式
一个正整数n.
输出格式
**输出请从周六开始
输入
20
输出
36 33 34 33 35 35 34
USACO Training Section 1.1
~~暴力枚举吧。。。。。。。。。。。。。。。。。
世纪年是除以100的,不是1000的。。。。。。。。。。。。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#include<bits/stdc++.h>
using namespace std;
int a[20];
bool run(int x) {
int x1=336,x2=335;
if(x%4==0&&x%100!=0)return 1;
if(x%100==0&&x%400==0)return 1;
return 0;
}
int main() {
int n;
cin>>n;
int op=0;
for(int i=1900; i<=1900+n-1; i++) {
for(int j=1; j<=12; j++) {
//cout<<"op="<<op<<"i="<<i<<endl;
a[(op+13)%7]++;
if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)op+=31;
else if(j!=2)op+=30;
else {
if(run(i))op+=29;
else op+=28;
}
}
}
cout<<a[6]<<" "<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5];
// for(int i=1;i<=5;i++)cout<<a[(i+6)%7]<<" ";cout<<a[5]<<" ";
//ans+=run(i);
return 0;//拜拜程序
}