Wprowadzenie:
Na półkuli północnej (tj. W Europie, Ameryce Północnej itp.) Pory roku są podzielone w następujący sposób:
- Wiosna: marzec, kwiecień, maj
- Lato: czerwiec, lipiec, sierpień
- Jesień: wrzesień, październik, listopad
- Zima: grudzień , Styczeń luty
Jednak na półkuli południowej (tj. W Australii, Ameryce Południowej itp.) Pory roku są podzielone w następujący sposób:
- Wiosna: wrzesień, październik, listopad
- Lato: grudzień, styczeń, luty
- Jesień: marzec, kwiecień, maj
- Zima: Czerwiec lipiec sierpień
Różnica wynika z położenia słońca względem równika, gdzie półkule północna i południowa mają przeciwne pory roku.
Wejście:
W tym wyzwaniu weźmiemy dwa dane wejściowe:
- Jeden za miesiąc (
1 <= m <= 12
lub0 <= m <= 11
) (przykłady i przypadki testowe są indeksowane 1). - I jeden do pięciu pozycji „grup” na szerokościach geograficznych Ziemi (
-2 <= p <= 2
), gdzie-2
jest Antarktyka,-1
jest półkula południowa wyłączeniem Antarktyka,0
są Tropics w pobliżu równika,1
jest północna półkula wyjątkiem Arktyki i2
jest Arktyka.
Chociaż Arktyka, Antarktyda i Tropiki oczywiście mają jeszcze pory roku, w związku z tym wyzwaniem powiemy, że Arktyka i Antarktyda są w stałym stanieWinter
, a tropik jest w stałym stanieSummer
.
Oto wizualna reprezentacja tych pięciu grup, gdzie -2
jest Koło Antarktyczne; -1
między zwrotnikiem koziorożca i kołem antarktycznym; 0
między Zwrotnikiem Koziorożca i Zwrotnikiem Raka; 1
między kołem podbiegunowym a zwrotnikiem raka; i -2
koło podbiegunowe.
Źródło: COSMOS - Encyklopedia astronomii SAO
Wynik:
Jednym z Spring
, Summer
, Autumn
, lub Winter
, po tych zasad:
- Jest wejściową pozycją
2
lub-2
(arktyczną lub antarktyczną), zawsze wyjściowąWinter
. - Czy wejście pozycji
0
(zwrotniki), zawsze wyjścieSummer
. - Czy wejście pozycji
1
(półkula północna), wyjście jednego z czterech sezonów na podstawie danych wejściowych miesiąca:Spring
(m = [3,5]
);Summer
(m = [6,8]
);Autumn
(m = [9,11]
);Winter
(m = 12 or m = [1,2]
). - Czy wejście pozycji
-1
(półkula południowa), wyjście jednego z czterech sezonów w oparciu o dane miesiąca:Spring
(m = [9,11]
);Summer
(m = 12 or m = [1,2]
);Autumn
(m = [3,5]
);Winter
(m = [6,8]
).
Zasady konkursu:
- Wyprowadzać cztery odrębne wartości wyboru wskazujące
Spring
,Summer
,Autumn
, lubWinter
(proszę podać, co już używany w odpowiedzi).
-15 bajty premię jeśli wyjścieSpring
,Summer
,Autumn
, lubWinter
jako tekst (wielkość liter, więc może być w pełni małe lub wielkie, jak również w pełni, zamiast używanych tytułowej przypadku). - Dane miesięczne mogą mieć dowolny rozsądny format. Może być liczbą całkowitą 0 lub 1, obiektem daty, ciągiem miesiąca itp.
- Wejście pozycja zawsze będzie jednym z tych możliwych pięciu wejść
-2
,-1
,0
,1
,2
.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki kod-golfowe zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe:
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
Odpowiedzi:
Ruby ,
33 2725 bajtówWypróbuj online!
Zwracane wartości to:
0 -> zima
1 -> wiosna
2 -> lato
3 -> jesień
źródło
Python 2 , 29 bajtów
Wypróbuj online!
Port podejścia Ruby GB , który okazał się kilka bajtów krótszy od mojego:
32 bajty
Wypróbuj online!
Anonimowa funkcja, która zwraca pory roku jako liczby od 0 do 3, gdzie reprezentują lato, jesień, zimę i wiosnę w tej kolejności.
Jeśli chodzi o drukowanie rzeczywistych nazw sezonów:
63 - 15 = 48 bajtów
Wypróbuj online!
Jeśli ktoś tego chce, jest połączony ciąg.
źródło
C (gcc) ,
7875 (premia -15) = 60 bajtówKorzystanie z miesięcy opartych na 1.
Edycja: Przestawiono operatory matematyczne i zmniejszono.
Wypróbuj online!
źródło
(++a+m/3)%4
→++a+m/3&3
. Poza tym,a*a
dziwnea
jest, kiedy jest, więc sprawdzaniea&1
powinno być w porządku, nie?05AB1E , 26–15 = 11 bajtów
Wykorzystuje podejście określone przez GB
Wypróbuj online! lub jako pakiet testowy
źródło