试题描述
请编程统计:从1900年1月1日(当天是星期一)开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、……、星期日的次数分别是多少?
输入
输入一个整数n (1 <= n <= 100)。
输出
输出7个整数(依次是星期一、星期二、星期三、……、星期日的次数),各数间以空格相隔。
输入示例
1
输出示例
1 3 1 2 2 2 1
数据范围
对于100%的数据,1 <= n <= 100
参考代码(模块化易懂)
#include<stdio.h>
#include<stdlib.h>
int ldata[12]={31,28,31,30,31,30,31,31,30,31,30,31},count[7]={0};
typedef struct Date *DATE;
struct Date{int week;int year;int mouth;int day;};
int main()
{
DATE date=(DATE)malloc(sizeof(*date));
void dateplus(DATE date);
int N;
scanf("%d",&N);
date->year =1900;
date->mouth=1;
date->day=1;
date->week=1;
while(date->year<1900+N)
{
dateplus(date);
if(date->day==13)
count[date->week-1]++;
}
for(int i=0;i<7;i++)
printf("%d ",count[i]);
return 0;
}
void dateplus(DATE date)
{
date->day ++;
date->week ++;
if (date->year%4==0&&(date->year%100!=0||date->year%400==0)) ldata[1]=29;
else ldata[1]=28;
if(date->day>ldata[date->mouth-1])
{
date->mouth++;
date->day=1;
}
if(date->mouth>12)
{
date->mouth=1;
date->year++;
}
if(date->week>7) date->week=1;
return ;
}
Code language: PHP (php)
如未特殊声明,文章均为原创。
本文标题:13号星期几
本文链接:https://manwish.cn/article/13%e5%8f%b7%e6%98%9f%e6%9c%9f%e5%87%a0.html
本文标题:13号星期几
本文链接:https://manwish.cn/article/13%e5%8f%b7%e6%98%9f%e6%9c%9f%e5%87%a0.html