请编程统计:从1900年1月1日(当天是星期一)开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、……、星期日的次数分别是多少?请使用循环和数组实现。
输入
输入一个整数n (1 <= n <= 100)。
输出
输出7个整数(依次是星期一、星期二、星期三、……、星期日的次数),各数间以空格相隔。
输入示例
1
输出示例
1 3 1 2 2 2 1
数据范围
对于100%的数据,1 <= n <= 100
请编程统计:从1900年1月1日(当天是星期一)开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、……、星期日的次数分别是多少?请使用循环和数组实现。
输入
输入一个整数n (1 <= n <= 100)。
输出
输出7个整数(依次是星期一、星期二、星期三、……、星期日的次数),各数间以空格相隔。
输入示例
1
输出示例
1 3 1 2 2 2 1
数据范围
对于100%的数据,1 <= n <= 100
亲,望采纳!
int n,x,t;
int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int vis[10];//记录周一到周天是13号的次数
int judge(int y)
{
if((y%4 == 0 && y%100 != 0) || (y%400 == 0))
return 1;
else return 0;
}
int main()
{
cin >> n;
for(int i=1900;i<1900+n;i++)
{
if(judge(i)) a[2]++;
else a[2] = 28;
for(int j=1;j<=12;j++)//月份
{
x = 0;
while(1)
{
if(x+1 > a[j]) break;
x++;
t = (t+1)%8;
if(t == 0) t = 1;
if(x == 13) vis[t]++;
}
}
}
for(int i=1;i<=7;i++)
printf("%d ",vis[i]);
printf("\n");
return 0;
}