第一题 13号星期几
(riqi.pas)
问题描述
请编程统计:从1900年1月1日(当天是星期一)开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、……、星期日的次数分别是多少?
输入文件riqi.in:
共一行,一个整数n (1≤n≤400)。
输出文件riqi.out:
仅一行, 有7个整数(依次是星期一、星期二、星期三、……、星期日的次数),各数间以空格相隔。
样例输入:
1
输出:
1 3 1 2 2 2 1
打换行太没劲了
#include<bits/stdc++.h>
using namespace std;
int n,d,y,m[13]={29,31,28,31,30,31,30,31,31,30,31,30,31},a[8];
bool ry(int year);
int main()
{
// freopen("riqi.in","r",stdin);
// freopen("riqi.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=12;j++)
{
if(i+j==2)d+=13;
else if(ry(1900+y)&&j==2)d+=m[0];
else d+=m[j];
if(d%7==0)a[7]++;
else a[d%7]++;
}
y++;
}
for(int i=1;i<=7;i++)cout<<a[i]<<' ';
// fclose(stdin);
// fclose(stdout);
return 0;
}
bool ry(int year)
{
if(year%4==0&&year%100!=0)return 1;
if(year%400==0)return 1;
return 0;
}
我这个蒟蒻卡在一道堪称红题的题也挺正常