//一种思路解题 #include<stdio.h> int main() { int year, mon; while (scanf("%d%d", &year, &mon) != EOF) { if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {//判断是否闰年 if (mon == 2) { printf("29\n"); } else if (mon < 8) { if (mon % 2 == 0) {//八月是转折点:八月前偶数月份是小月,八月后偶数月份为大月 printf("30\n"); } else { printf("31\n"); } } else { if (mon % 2 == 0) { printf("31\n"); } else { printf("30\n"); } } } else { if (mon == 2) { printf("28\n"); } else if (mon < 8) { if (mon % 2 == 0) { printf("30\n"); } else { printf("31\n"); } } else { if (mon % 2 == 0) { printf("31\n"); } else { printf("30\n"); } } } } return 0; }