【HDOJ】2133 What day is it

时间:2023-03-09 15:35:24
【HDOJ】2133 What day is it

需要注意数据有效性。

 #include <stdio.h>

 #define isLeapYear(y) (y%4==0&&y%100!=0)||(y%400==0)

 int nums[][] = {{,,,,,,,,,,,,}, {,,,,,,,,,,,,}};
char buf[][] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int main() {
int i, j, year, month, day, total; while (scanf("%d %d %d", &year, &month, &day) != EOF) {
total = day;
j = isLeapYear(year);
if (month== || day==) {
printf("illegal\n");
continue;
}
for (i=; i<month; ++i)
total += nums[j][i];
if (month == ) {
if (!j && day>) {
printf("illegal\n");
continue;
}
if (j && day>) {
printf("illegal\n");
continue;
}
}
if ((month==||month==||month==||month==) && day>) {
printf("illegal\n");
continue;
}
for (i=; i<year; ++i) {
if (isLeapYear(i))
total += ;
else
total += ;
}
i = total % ;
printf("%s\n", buf[i]);
} return ;
}