Introducción:
En el hemisferio norte (es decir, Europa, América del Norte, etc.), las estaciones se dividen así:
- Primavera: marzo, abril, mayo
- Verano: junio, julio, agosto
- Otoño: septiembre, octubre, noviembre
- Invierno: diciembre , Enero febrero
En el hemisferio sur , sin embargo (por ejemplo, Australia, América del Sur, etc.), las estaciones se dividen así:
- Primavera: Septiembre, Octubre, Noviembre
- Verano: diciembre enero, febrero
- Otoño: marzo, abril, mayo
- Invierno: Junio Julio Agosto
Esta diferencia se debe a la posición del sol con respecto al ecuador, donde los hemisferios norte y sur tienen estaciones opuestas.
Entrada:
En este desafío, tomaremos dos entradas:
- Uno para el mes (
1 <= m <= 12
o0 <= m <= 11
) (los ejemplos y los casos de prueba están todos indexados en 1). - Y uno para los cinco 'grupos de posición' en las latitudes de la Tierra (
-2 <= p <= 2
), donde-2
está la Antártida,-1
es el hemisferio sur excluyendo la Antártida,0
son los Trópicos en la proximidad del ecuador,1
es el hemisferio norte excluyendo el Ártico, y2
es el Artico.
Aunque el Ártico, el Antártico y los Trópicos, por supuesto, todavía tienen estaciones, por el bien de este desafío, diremos que el Ártico y el Antártico están en un estado constante deWinter
, y los Trópicos están en un estado constante deSummer
.
Aquí una representación visual de estos cinco grupos, donde se -2
encuentra el Círculo Antártico; -1
entre el trópico de Capricornio y el círculo antártico; 0
entre el Trópico de Capricornio y el Trópico de Cáncer; 1
entre el Círculo Polar Ártico y el Trópico de Cáncer; y -2
el círculo polar ártico.
Fuente: COSMOS - La Enciclopedia SAO de Astronomía
Salida:
Uno de Spring
, Summer
, Autumn
, o Winter
, siguiendo estas reglas:
- Es la entrada de posición
2
o-2
(Ártico o Antártico), siempre salidaWinter
. - Es la entrada de posición
0
(trópicos), siempre salidaSummer
. - Es la entrada de posición
1
(hemisferio norte), salida de una de las cuatro estaciones en función de la entrada del mes:Spring
(m = [3,5]
);Summer
(m = [6,8]
);Autumn
(m = [9,11]
);Winter
(m = 12 or m = [1,2]
) - Es la entrada de posición
-1
(hemisferio sur), salida de una de las cuatro estaciones en función de la entrada del mes:Spring
(m = [9,11]
);Summer
(m = 12 or m = [1,2]
);Autumn
(m = [3,5]
);Winter
(m = [6,8]
)
Reglas de desafío:
- Salida de cualquiera de los cuatro valores distintos de su elección que indican
Spring
,Summer
,Autumn
, oWinter
(favor especifique que usted ha utilizado en su respuesta).
-15 bytes bonificación , si se imprimeSpring
,Summer
,Autumn
, oWinter
como texto (entre mayúsculas y minúsculas, por lo que puede estar totalmente en minúsculas o totalmente en mayúsculas, así, en lugar del título de los casos se usa). - La entrada del mes puede estar en cualquier formato razonable. Puede ser un entero indexado o indexado 0, un objeto de fecha, una cadena de mes, etc.
- Entrada de posición siempre será uno de estos posibles cinco entradas
-2
,-1
,0
,1
,2
.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
Casos de prueba:
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
Respuestas:
Rubí ,
33 2725 bytesPruébalo en línea!
Los valores de retorno son:
0 -> invierno
1 -> primavera
2 -> verano
3 -> otoño
fuente
Python 2 , 29 bytes
Pruébalo en línea!
Un puerto del enfoque Ruby de GB , que resultó ser unos pocos bytes más corto que el mío:
32 bytes
Pruébalo en línea!
Una función anónima que devuelve las estaciones como los números del 0 al 3, donde representan verano, otoño, invierno y primavera en ese orden.
En cuanto a imprimir los nombres de temporada reales:
63-15 = 48 bytes
Pruébalo en línea!
Existe la cadena combinada si alguien lo quiere.
fuente
C (gcc) ,
7875 (-15 bonus) = 60 bytesUsando meses basados en 1.
Editar: Operadores matemáticos reorganizados y reducidos.
Pruébalo en línea!
fuente
(++a+m/3)%4
→++a+m/3&3
. Además,a*a
es extraño exactamente cuando loa
es, por lo que la comprobacióna&1
debería estar bien, ¿no?05AB1E , 26-15 = 11 bytes
Utiliza el enfoque encontrado por GB
Pruébalo en línea! o como un conjunto de pruebas
fuente