我的高中和其他许多学校都实施一种称为“轮班时间表”的时间表。这是人们上8堂课的方式,而在一堂课上有6堂课。
一个块计划中有四天一遍又一遍地重复,与一周中的实际天数无关。每个分配一个编号[1-4]
。
日程安排的工作方式是您列出所有早班时间1-4
:[1, 2, 3, 4]
。这是你第一天的时间表,或1天的日子,其余只需旋转列表:[2, 3, 4, 1]
,[3, 4, 1, 2]
,[4, 1, 2, 3]
。
但是,早上的最后一个时间段被“删除”,并且那天您没有看到那个老师。因此,天数为:[1, 2, 3]
,[2, 3, 4]
,[3, 4, 1]
,[4, 1, 2]
。
下午是一样的,只不过它使用周期5-8
,而不是:[5, 6, 7]
,[6, 7, 8]
,[7, 8, 5]
,[8, 5, 6]
。
你的任务
所有这些旋转都是很难跟踪的,因此您必须编写一个程序以打印出我的日程安排(以输入日期为准)。您的代码必须将Homeroom和Lunch放置在正确的位置。这是您的代码需要输入的确切输出1-4
:
Homeroom Homeroom Homeroom Homeroom
Period 1 Period 2 Period 3 Period 4
Period 2 Period 3 Period 4 Period 1
Period 3 Period 4 Period 1 Period 2
Lunch Lunch Lunch Lunch
Period 5 Period 6 Period 7 Period 8
Period 6 Period 7 Period 8 Period 5
Period 7 Period 8 Period 5 Period 6
但是,等等-还有一件事!
有时,在开学的第一天或其他特殊日子,我的学校有“第0天”。这只是意味着我当天将上完所有课,包括班级和午餐。您的代码必须处理第0天。这是第0天的输出:
Homeroom
Period 1
Period 2
Period 3
Period 4
Lunch
Period 5
Period 6
Period 7
Period 8
这是代码高尔夫球,因此以字节为单位的最短代码胜出!
1, 2, 3, 5, 6, 7
?