[解题报告]A - Doom's Day Algorithm
题目大意
题目原文:http://uva.onlinejudge.org/external/120/12019.pdf
背景:
请你判断公元2011年的某月某日是星期几。
intput
输入的第一列有一个表示测试数据组数的整数。接着每一列分别表示一组测试数据,其格式为M D。M表示月份(1~12),D表示日期(1~31),所有日期皆是合法的。
output
请你判断2011年的该日期是星期几。星期一到星期日分别为 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday。
Sample Input
8
1 6
2 28
4 5
5 26
8 1
11 1
12 2512 31
Sample Output
Thursday
Monday
Tuesday
Thursday
Monday
Tuesday
Sunday
Saturday
算法:
我的思路是现一年的日期的星期几都先计算出来,然后再打印出来。见代码。
代码:
这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。
#include<stdio.h> int main(void) { int week[13][32]; int dat=6,i,k,n,count,m,d; for(i=1;i<=12;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) n=31; else if(i==4||i==6||i==9||i==11) n=30; else if(i==2) n=28; for(k=1;k<=n;k++) { week[i][k]=dat; dat++; if(dat>7) dat=1; } } scanf("%d",&count); while(count--) { scanf("%d %d",&m,&d); if(week[m][d]==1) printf("Monday\n"); if(week[m][d]==2) printf("Tuesday\n"); if(week[m][d]==3) printf("Wednesday\n"); if(week[m][d]==4) printf("Thursday\n"); if(week[m][d]==5) printf("Friday\n"); if(week[m][d]==6) printf("Saturday\n"); if(week[m][d]==7) printf("Sunday\n"); } return 0; }