#4720. [USACO 1.2.3] Friday the Thirteenth
[USACO 1.2.3] Friday the Thirteenth
Friday the Thirteenth
13 日星期五真的是一种不寻常的事件吗?
也就是说,一个月的 13 日落在星期五的频率是否低于其他任何一天?为了回答这个问题,请编写一个程序,计算在给定的 N 年期间,每个月的 13 日落在周六、周日、周一、周二、周三、周四和周五的频率。测试的时间范围是从 1900 年 1 月 1 日到 1900 年 + N - 1 年的 12 月 31 日,N 为给定的年数。N 为正数,且不会超过 400。
注意,起始年份是 1900 年,而不是 1990 年。
在解决这个问题之前,你需要了解一些事实:
-
1900 年 1 月 1 日是周一。
-
9 月、4 月、6 月和 11 月各有 30 天,其余月份(除 2 月外)都有 31 天。2 月通常有 28 天,但在闰年有 29 天。
-
能被 4 整除的年份是闰年(1992 = 4×498,因此 1992 年是闰年,但 1990 年不是闰年)。
-
对于世纪年份,上述规则不适用。能被 400 整除的世纪年是闰年,其他都不是。因此,1700 年、1800 年、1900 年和 2100 年不是闰年,但 2000 年是闰年。
请不要使用计算机语言中的任何内置日期函数。
也不要预先计算答案。
程序名称:friday
输入格式
包含整数 N 的一行。
示例输入(文件 friday.in)
20
输出格式
一行包含七个用空格分隔的整数。这些整数分别表示 13 日落在周六、周日、周一、周二、……、周五的次数。
示例输出(文件 friday.out)
36 33 34 33 35 35 34
相关
在下列比赛中: