codevs 2600 13号星期几?
时间限制: 1 s
空间限制: 8000 KB
题目等级 : 黄金 Gold
题目描述 Description
从1900年1月1日(星期一)
开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、......、星期日的次数分别是多少?
输入描述 Input Description
一行,一个整数(1<=n<=400)
输出描述 Output Description
一行7个整数,以空格相隔,(依次是星期一、星期二、星期三、......星期日的次数)
样例输入 Sample Input
1
样例输出 Sample Output
1 3 1 2 2 2 1
数据范围及提示 Data Size & Hint
1<=n<=500
模拟
#include <cstdio> int n,cx[8],ts[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int pd(int a) { if(a%4!=0||a%100==0&&a%400!=0||a%3200==0) return 0; else return 1; } int main() { scanf("%d",&n); int xq=0,nian=1900; while(n) { if(pd(nian)) ts[2]=29; else ts[2]=28; int y=1; while(y!=13) { int t=0; xq=(xq+13)%7; if(xq==0) xq=7; cx[xq]++; if(y<12) xq=(xq+ts[y]-13)%7; else xq=(xq+ts[1]-13)%7; if(xq==0) xq=7; y++; } nian++; n--; } for(int i=1;i<=7;++i) printf("%d ",cx[i]); return 0; }
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。