嗜血魂K

导航

1.1 Friday the Thirteenth

居然是因为少输出化12月而调试了很久T T

然后题目有说:

OUTPUT FORMAT

Seven space separated integers on one line.

7个空格有木有啊!我读错了?第一次交上去就应该最后多了个空格WA了T T

就是模拟每月13日星期几加上。。。。初始化每月天数和闰年= =。

 

/*
ID:y7276571
LANG: C
TASK: friday
*/
#include<stdio.h>
#include<string.h>
#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);
}

 

posted on 2011-10-28 09:18  嗜血魂K  阅读(165)  评论(0编辑  收藏  举报