andy6804tw
7/15/2016 - 10:58 AM

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=9 困難度 ★ 因為我們已經知道年份為 2011,而 2011 年 Doomsday 為星期一 Doomsday Algorithm,詳細的原理

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=9 困難度 ★ 因為我們已經知道年份為 2011,而 2011 年 Doomsday 為星期一 Doomsday Algorithm,詳細的原理就是… 每一年的二月的最後一天 (2/28 或 2/29),和 4/4、6/6、8/8、10/10、12/12,和 9/5、5/9、7/11、11/7 (記憶口訣是 我在 7-11 的工作時間是朝 9 晚 5),和 3/7 (二月最後一天的一星期後),和 1/3 (西元年不可被 4 整除) 或 1/4 (可以被 4 整除),這些日子的星期都是一樣的,這一天叫做 Doomsday 資料來源:https://blog.ijliao.info/archives/2004/04/07/321/

#include<stdio.h>   
int main(){     
 char week[7][10] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
 int month[13] = {-1 ,3, 28,  7, 4, 9, 6, 11, 8, 5, 10, 7, 12};
 int m,d,n,i;
 scanf("%d",&n);
 for(i=0;i<n;i++){
 scanf("%d%d",&m,&d); 
 int index = (d - month[m]) % 7;
    index = index % 7 < 0 ? index + 7: index;
    printf("%s\n", week[index]);
 }
  
    return 0;   
  
 /* 
    題目:Q12019: Doom's Day Algorithm
    作者:1010
    時間:西元 2016 年 7 月 */
}