以前也听说过黑色星期五,既是13号,又是星期五,这似乎这是个不详的日子,这个题目要我们通过计算了解一下黑色星期五是否有特别之处:计算是13号又是星期五的天数,以及13号,其他六天的天数,看看黑色星期五的天数是否特别些。要求计算从1900年1月1号开始,到1990+n-1年12月31号结束。已知1900年1月1号是星期一,要注意考虑平年闰年。输入为一个小于400的非负整数n,输出为7个不同天的天数。
/*
ID: whutzha1
PROG: friday
LANG: C++
*/
#include<fstream>
using namespace std;
ifstream cin("friday.in");
ofstream cout("friday.out");
int main()
{
int year=1900;
int month_day,date,month;
date=(13-1+1)%7;
int arr[7];
int i,n;
bool leap;
for (i=0;i<7;i++) arr[i]=0;
cin>>n;
arr[date]++;
while (year<1900+n)
{
month=1;
if((year%4==0&&year%100!=0)||year%400==0) leap=true;
else leap=false;
while(month<=12)
{
switch (month)
{
case 4:
case 6:
case 9:
case 11: month_day=30;break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: month_day=31;break;
case 2: if (leap) month_day=29;
else month_day=28; break;
default: break;
}
month=month++;
date=(date+month_day)%7;
arr[date]++;
}
year++;
}
arr[date]--;
for (i=6;i<12;i++)
{
cout<<arr[i%7]<<' ';
}
cout<<arr[5]<<endl;
return 0;
}
百度了一下,黑色星期五之所以为黑色星期五,只是因为在西方国家中星期五和13都是不吉利的数字,而这两个不幸的数字叠加在一起,就成了大大的不幸,所以这样的日子被称为黑色星期五!而事实上,这个黑色星期五在天数上也没什么特别之处,和其他的天的天数差不多罢了!