1002. 【USACO题库】1.1.3 Friday the Thirteenth 黑色星期五

1002. 【USACO题库】1.1.3 Friday the Thirteenth 黑色星期五

(Input: friday.in, Output: friday.out)

时间限制: 1 s 空间限制: 256 MB 

题目描述

每月 13 号刚好落在星期五的情况,是不是一定比落在其他星期一~星期四,还有落在周末的这些情况少呢?为了回答这个问题,写一个程序来计算在连续的 n 年中,每月的 13 日落在星期一,星期二……星期日的次数。具体时间段从 1900 年 1 月 1 日到 1900+n-1 年 12 月 31 日。其中 n 是一个非负数且不大于 400。

需要注意的是:

  • 1900 年 1 月 1 日是星期一。
  • 4, 6, 9 和 11 月有 30 天,其他月份(除了 2 月)有 31 天。闰年 2 月有 29 天,平年 2 月有 28 天。
  • 年份可以被 4 整除的为闰年(比如,1992=4×498 所以 1992 年是闰年,但 1990 年不是闰年)。
  • 以上规则不适用于世纪年(即数字刚好为整百的年)。可以被 400 整除的世纪年为闰年,否则为平年。所以,1700,1800,1900 和 2100 年是平年,而 2000 年是闰年。

请不要调用程序语言提供的任何日期相关的内置函数。也请不要预先算好所有答案。

输入

从文件 friday.in 中读入数据。

一个整数 n。

输出

输出到文件 friday.out 中。

一行 7 个整数,代表 13 日是星期六,星期日,星期一……星期五的次数。 

样例数据
输入 #1 
20
输出 #1 
36 33 34 33 35 35 34
#include<bits/stdc++.h>
using namespace std;
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool q(int a)
{
	return(a%400==0||(a%100!=0&&a%4==0));
}
int w[10];
int main()
{
	freopen("friday.in","r",stdin);
	freopen("friday.out","w",stdout);
	int n,s=0;
	cin>>n;
	for(int i=1900;i<=1900+n-1;i++)
	{
		if(q(i))m[2]=29;
		else m[2]=28;
		for(int j=1;j<=12;j++)
		{
			w[(s+13)%7]++;
			s+=m[j];
		}
	}
	cout<<w[6];
	for(int i=0;i<=5;i++)cout<<" "<<w[i];
}

相关推荐

  1. USACO 2024 Jan B题解

    2024-04-30 20:20:02       52 阅读
  2. 洛谷P2176 [USACO11DEC] RoadBlock S / [USACO14FEB]Roadblock G/S

    2024-04-30 20:20:02       31 阅读
  3. 题解】洛谷 P9183 [USACO23OPEN] FEB B

    2024-04-30 20:20:02       59 阅读
  4. P1697 [USACO18JAN] Lifeguards B 题解

    2024-04-30 20:20:02       47 阅读
  5. P1596 [USACO10OCT] Lake Counting S 题解

    2024-04-30 20:20:02       37 阅读
  6. 题解】二分 | [USACO 2009 Dec S]Music Notes

    2024-04-30 20:20:02       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 20:20:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 20:20:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 20:20:02       87 阅读
  4. Python语言-面向对象

    2024-04-30 20:20:02       96 阅读

热门阅读

  1. Kafka集群搭建

    2024-04-30 20:20:02       36 阅读
  2. ndk编译android系统下运行的ffmpeg配置

    2024-04-30 20:20:02       34 阅读
  3. 使用通义千问,为汽车软件需求生成测试用例

    2024-04-30 20:20:02       29 阅读
  4. WebSocket 的封装

    2024-04-30 20:20:02       39 阅读
  5. Android Glide 获取动图的第一帧

    2024-04-30 20:20:02       33 阅读
  6. 原生小程序分页/上拉加载(通过页面生命周期)

    2024-04-30 20:20:02       30 阅读
  7. Czi.算法学习(三)

    2024-04-30 20:20:02       34 阅读