1678 GG's Single Day

来源:互联网 发布:djongo 数据库查询 编辑:程序博客网 时间:2024/05/18 15:27
 描述

那是2009年11月11日的夜晚,刚上完JAVA课的gg孤独的走在从六号楼到大运村的路上,这是一条gg再熟悉不过的路,但今天的gg却感慨满怀,这是gg有生以来的第二十个Single Day了,还有多少个Single Day在等着我们的gg呢?大家拭目以待吧!(以上纯属YY)
今天需要大家帮gg一个忙,2009年11月11日是星期三,而这是他一个星期中课业最重的一天,一天10课时……gg想知道的是,N年后的Single Day还会是星期三吗?如果不是,又是星期几呢?N年后的gg,欢迎大家展开丰富的想象!(继续YY中,勿扰……)

输入

输入共t+1行,第一行是一个整数t,表示共有t组数据。下面t行,每行一个int类型的正整数N(1<=t<=10^4,0<=N<=10^9)。

输出

输出对应的星期数,星期一是1,星期二是2,……,星期日是7。

解题思路:此题其实类似以前做过的一道黑色星期五的题目,只需要套用网上一个流传很牛叉的公式即可,名称已经忘记,可能是18世纪某数学家推导出来的。

 

#include<stdio.h>char   *name[]   =   {  "1",   "2",   "3",   "4",   "5",   "6",   "7"   };   void   main(){   long int   d,m,y,a,number,i; d=11;m=11;     scanf("%ld",&number);for(i=0;i<number;i++){scanf("%ld",&y);y=y+2009;if  ((m   ==   1)   ||   (m   ==   2)){   m   +=   12;   y--;   }   a   =   (d   +   2*m   +   3*(m+1)/5   +   y   +   y/4   -   y/100   +   y/400)   %   7;   printf("%s\n",name[a]); }}   


 

原创粉丝点击