/*
ID: mrster.1
LANG: C
TASK: friday
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n = 0;
int countDays = 0;
int week[7];
int i = 0,j;
FILE *fin = fopen("friday.in","r");
FILE *fout = fopen("friday.out","w");
for(i = 0;i<7;i++)
{
week[i] = 0;
}
fscanf(fin,"%d",&n);
countDays = countDay(1899+n,12,31);
for(i = 1;i<=n;i++)
{
for(j = 1;j<=12;j++)
{
countDays = countDay(1899+i,j,13);
week[(countDays-1)%7]++;
}
}
fprintf(fout,"%d %d ",week[5],week[6]);
for(i = 0;i<5;i++)
{
if(i!=4)fprintf(fout,"%d ",week[i]);
else fprintf(fout,"%d",week[i]);
}
fprintf(fout,"\n");
}
int countDay(int year,int month,int day)
{
int countDay = 0;
int i = 0;
for(i = 1900;i<year;i++)
{
if(isLeapYear(i)==1)countDay += 366;
else countDay +=365;
}
countDay +=countCurrentDay(year,month,day);
return countDay;
}
int countCurrentDay(int year,int month,int day)
{
int countDay = 0;
int flag = 0;
flag = isLeapYear(year);
switch(month-1)
{
case 11 :countDay+=30;
case 10 :countDay+=31;
case 9 :countDay+=30;
case 8 :countDay+=31;
case 7 :countDay+=31;
case 6 :countDay+=30;
case 5 :countDay+=31;
case 4 :countDay+=30;
case 3 :countDay+=31;
case 2 :countDay+=28+flag;
case 1 :countDay+=31;
break;
}
countDay +=day;
return countDay;
}
int isLeapYear(int year)
{
int flag = 0;
if(year%100!=0)
{
if(year%4==0)flag = 1;
}
else if(year%100==0)
{
if(year%400==0)flag = 1;
}
return flag;
}
Friday the Thirteenth
最新推荐文章于 2018-11-30 23:43:33 发布