NYOJ—An problem about date【水题|公式题】

来源:互联网 发布:詹姆斯2016总决赛数据 编辑:程序博客网 时间:2024/06/05 06:01

An problem about date

时间限制:2000 ms | 内存限制:65535 KB
难度:2

描述

acm的iphxer经常忘记某天是星期几,但是他记那天的具体日期,他希望你能写个程序帮帮他。

输入

每行有三个整数 year,month,day,日期在1600年1月1日到9600年1月1日之间;

输出

输出对应的星期,用一个整数表示;(星期一到星期六用1-6表示,星期日用0表示)

样例输入

2011 3 6
1949 10 1
2011 4 1
1945 8 15

样例输出

0
6
5
3

思路

知道公式的时候就是水题一道。

代码

#include <bits/stdc++.h>using namespace std;int main(){    int y, m, d;    while(~scanf("%d%d%d", &y, &m, &d))//y,m,d分别代表年月日    {        if((m==1)||(m==2))//1月2月当作上一年的13,14月        {            m+=12;            y--;        }        printf("%d\n",(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7);    }    return 0;}
0 0