Is Friday the 13th really an unusual event?
That is, does the 13th of the month land on a Friday less often than on any other day of the week? To answer this question, write a program that will compute the frequency that the 13th of each month lands on Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday over a given period of N years. The time period to test will be from January 1, 1900 to December 31, 1900+N-1 for a given number of years, N. N is positive and will not exceed 400.
Note that the start year is NINETEEN HUNDRED, not 1990.
There are few facts you need to know before you can solve this problem:
Do not use any built-in date functions in your computer language.
Don't just precompute the answers, either, please.
20
36 33 34 33 35 35 34
简单的模拟题,直接上代码
#include<stdio.h> #include<string.h> int is_leap(int n)//进行判断是否为闰年 { if(n%400==0) return 1; if( (n%100) && (n%4==0)) return 1; return 0; } int main() { int n,wek=0,week[7]; int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; scanf("%d",&n); memset(week,0,sizeof(week)); for(int year=1900;year<1900+n;year++) { if(is_leap(year)) a[2]=29; if(!is_leap(year)) a[2]=28; for(int i=1;i<=12;i++) { for(int j=1;j<=a[i];j++) { wek++; if(j==13) week[wek]++; wek%=7;//取模,使之一直为1-7 } } } printf("%d %d",week[6],week[7]); for(int i=1;i<=5;i++) printf(" %d",week[i]); printf("\n"); }