居然是因为少输出化12月而调试了很久T T
然后题目有说:
OUTPUT FORMAT
Seven space separated integers on one line.
7个空格有木有啊!我读错了?第一次交上去就应该最后多了个空格WA了T T
就是模拟每月13日星期几加上。。。。初始化每月天数和闰年= =。
/* ID:y7276571 LANG: C TASK: friday */ #include#include #define YEARLEN 400 #define MOUTHLEN 14 #define WEEKLEN 7 int leap[YEARLEN] = { 0}; int mlen[MOUTHLEN] = { 0, 31, 28, 31, 30,31,30,31,31,30,31,30,31}, day[WEEKLEN] = { 0}; void findleap(int N) { int i, n = 1900+N; for(i = 1900; i < n; i++) if(i % 4 == 0) if(i % 100) leap[i-1900] = 1; else if(i % 400 == 0) leap[i-1900] = 1; } int main(void) { freopen("friday.in", "r", stdin); freopen("friday.out", "w", stdout); int i, j; int N, d = 1; scanf("%d", &N); findleap(N); d = (d+12)%7; day[d]++; for(i = 0; i < N; i++) for(j = 1; j <= 12; j++) { if(j == 2 && leap[i] == 1) { d = (d+29)%7; day[d]++; } else { d = (d+mlen[j])%7; day[d]++; } } day[d]--; for(i = 6; i < 13; i++) if(i==12) printf("%d\n", day[i%7]); else printf("%d ", day[i%7]); exit(0); }