当前位置: 代码迷 >> 综合 >> 14 黑色星期五
  详细解决方案

14 黑色星期五

热度:91   发布时间:2023-12-03 17:56:28.0

问题描述 :

13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二…星期日的次数.这个测试从1900年1月1日到 1900+n-1年12月31日.n是一个非负数且不大于400.

这里有一些你要知道的: 1900年1月1日是星期一. 4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.

输入说明 :

一个整数n(1<= n <= 400).

输出说明 :

七个在一行且相分开的整数,它们代表13日是星期六,星期日,星期一…星期五的次数.

输入范例 :

20
输出范例 :

36 33 34 33 35 35 34
 

#include<stdio.h>
#include<math.h>
int main()
{int year,n,i,j;long long int day=0;///天数(以防越界)int week[7]={0,0,0,0,0,0,0,0},month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};while(scanf("%d",&n)!=EOF)///输入倍数{for(year=1900;year<=1900+n-1;year++){if( (year%100!=0 && year%4==0) || (year%400==0) )///闰年的情况month[2]=29;elsemonth[2]=28;///平年的情况for(i=1;i<=12;i++)///对月份的判断{for(j=1;j<=month[i];j++)///对天数的计算{day++;if(j==13)week[day%7]++;}}}printf("%d %d %d %d %d %d %d",week[6],week[0],week[1],week[2],week[3],week[4],week[5]);}return 0;
}