首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定季节

确定季节
EN

Code Golf用户
提问于 2018-05-14 12:40:28
回答 2查看 905关注 0票数 11

简介:

在北半球(即欧洲、北美等),季节划分如下:

  • 春天:三月,四月,五月

  • 夏季:6月、7月、8月

  • 秋季:9月、10月、11月

  • 冬季:12月、1月、2月

然而,在南半球(即澳大利亚、南美洲等),季节是这样划分的:

  • 春季:9月、10月、11月

  • 夏季:12月、1月、2月

  • 秋季:3月、4月、5月

  • 冬季:6月、7月、8月

这一差异是由于太阳对赤道的位置,在那里南北半球有相反的季节。

输入:

在这个挑战中,我们将接受两个输入:

  • 一个月(1 <= m <= 120 <= m <= 11) (示例和测试用例都是1索引的)。
  • 在地球纬度(-2 <= p <= 2)的五个“位置-群”中,-2是南极,-1是不包括南极的南半球,0是赤道附近的热带,1是不包括北极的北半球,2是Arctic.,虽然北极、南极和热带当然还有季节,但为了这一挑战,我们会说北极和南极一直处于Winter状态,热带一直处于Summer状态。

在这里,-2是南极圈;-1在摩羯座和南极圈之间;0在摩羯座热带和北线之间;1在北极圈和北斗热带之间;-2是北极圈。

资料来源:宇宙-“天文学百科全书”。

输出:

SpringSummerAutumnWinter中的一个,遵循以下规则:

  • 是位置输入2-2 (北极或南极),总是输出Winter
  • 是位置输入0 (热带),始终输出Summer
  • 是位置输入1 (北半球),根据月份输入输出四季之一:Spring (m = [3,5]);Summer (m = [6,8]);Autumn (m = [9,11]);Winter (m = 12 or m = [1,2])。
  • 是位置输入-1 (南半球),根据月份输入输出四季之一:Spring (m = [9,11]);Summer (m = 12 or m = [1,2]);Autumn (m = [3,5]);Winter (m = [6,8])。

挑战规则:

  • 输出您所选择的任何四个不同的值,指示SpringSummerAutumnWinter (请说明您在回答中使用了什么)--如果您输出SpringSummerAutumnWinter作为文本(不区分大小写,所以也可以是完全小写或完全大写,而不是使用的标题大写),则. -15字节加值。
  • 月输入可以以任何合理的格式。可以是0索引或1索引整数、日期对象、月份字符串等.
  • 位置输入始终是这五个可能的输入之一-- -2-1012

一般规则:

  • 这是密码-高尔夫,所以最短的答案(以字节为单位)-- wins. --不要让代码-高尔夫语言阻止你用非代码处理语言发布答案。试着为“任意”编程语言提供一个尽可能短的答案。
  • 适用标准规则作为您的答案,因此您可以使用STDIN/STDOUT,函数/方法具有适当的参数和返回类型的完整程序。你说了算。
  • 违约漏洞是禁止的。
  • 如果可能,请为您的代码添加一个带有测试的链接。
  • 此外,如有必要,请补充说明。

测试用例:

代码语言:javascript
复制
Position    1-indexed Month    Output

-2          8  (August)        Winter
-2          12 (December)      Winter
-1          3  (March)         Autumn
-1          5  (May)           Autumn
-1          8  (August)        Winter
-1          12 (December)      Summer
0           1  (January)       Summer
0           7  (July)          Summer
1           1  (January)       Winter
1           4  (April)         Spring
1           7  (July)          Summer
1           12 (December)      Winter
2           2  (February)      Winter
2           9  (September)     Winter
EN

回答 2

Code Golf用户

发布于 2018-05-14 13:04:39

Python 2,29字节

代码语言:javascript
复制
lambda p,m:[0,m+6,6,m][p]/3%4

在网上试试!

一个G‘s红宝石方法端口,它比我自己的端口短几个字节:

32字节

代码语言:javascript
复制
lambda p,m:(p%2*(p+m/3+5)or p)%4

在网上试试!

一个匿名函数,它以数字0到3的形式返回季节,其中它们按该顺序表示夏季、秋季、冬季和春季。

至于印刷实际的季节名称:

63 - 15 = 48字节

代码语言:javascript
复制
lambda p,m:"SAWSuuipmtnrmutiemenrnrg"[(p%2*(p+m/3+5)or p)%4::4]

在网上试试!

如果有人想要的话就有组合的字符串。

票数 6
EN

Code Golf用户

发布于 2018-05-14 13:57:47

05AB1E,26-15= 11字节

使用G B发现的方法

代码语言:javascript
复制
6¹¾¹6+)sè3÷4%“–„Ž¹Ž€È±“#sè

在网上试试!测试套件

票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/164753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档