####Friday the Thirteenth####
簡述:
要求你統計從1900年1月1日(Monday)到指定的1900+N-1年12月31日,其中的每個月13號是星期幾。
我設置了初值爲1989年12月13日,這天是星期三,然後就可以和後面的年份一樣的處理了。常數組就記下每個月對7取餘的多的數,就是比上個月的星期多的數。然後就統計到對應的一年。
代碼:
#include <stdio.h>
#include <stdlib.h>
int ts[7];
int mon[12] = {3, 3, 0, 3, 2, 3, 2, 3, 3, 2, 3, 2};
int main(void)
{
freopen("friday.in", "r", stdin);
freopen("friday.out", "w", stdout);
int i, j, n;
int y = 1900, day = 3;
scanf("%d", &n);
for(i = 0; i < n; i++)
{
int leap = 0;
y =1900 + i;
if((y % 4 == 0 && y % 100 != 0)||(y % 400 == 0))leap = 1;
for(j = 0; j < 12; j++)
{
if(j == 2 && leap)day++;
day += mon[j];
day %= 7;
ts[day]++;
}
}
printf("%d", ts[6]);
for(i = 0; i < 6; i++)
printf(" %d", ts[i]);
printf("\n");
return 0;
}