Einführung:
Auf der Nordhalbkugel (dh Europa, Nordamerika usw.) sind die Jahreszeiten folgendermaßen unterteilt:
- Frühling: März, April, Mai
- Sommer: Juni, Juli, August
- Herbst: September, Oktober, November
- Winter: Dezember , Januar Februar
In der südlichen Hemisphäre (dh Australien, Südamerika usw.) sind die Jahreszeiten jedoch wie folgt unterteilt:
- Frühling: September, Oktober, November
- Sommer: Dezember, Januar, Februar
- Herbst: März, April, Mai
- Winter: Juni Juli August
Dieser Unterschied ist auf die Position der Sonne in Bezug auf den Äquator zurückzuführen, wo die nördliche und südliche Hemisphäre unterschiedliche Jahreszeiten haben.
Eingang:
Bei dieser Herausforderung nehmen wir zwei Eingaben vor:
- Eine für den Monat (
1 <= m <= 12
oder0 <= m <= 11
) (Beispiele und Testfälle sind alle 1-indiziert). - Und eine für die fünf 'Positionsgruppen' in den Breiten der Erde (
-2 <= p <= 2
), wo-2
sich die Antarktis befindet,-1
ist die südliche Hemisphäre ohne die Antarktis,0
sind die Tropen in der Nähe des Äquators,1
ist die nördliche Hemisphäre ohne die Arktis und2
ist die Arktis.
Obwohl die Arktis, die Antarktis und die Tropen natürlich noch Jahreszeiten haben, werden wir für diese Herausforderung sagen, dass sich die Arktis und die Antarktis in einem konstanten Zustand befindenWinter
und die Tropen in einem konstanten Zustand vonSummer
.
Hier eine visuelle Darstellung dieser fünf Gruppen, wo -2
sich der Polarkreis befindet; -1
zwischen dem Tropen des Steinbocks und dem Polarkreis; 0
zwischen dem Tropic of Capricorn und dem Tropic of Cancer; 1
zwischen dem Polarkreis und Tropic of Cancer; und -2
der Polarkreis.
Quelle: COSMOS - Die SAO-Enzyklopädie der Astronomie
Ausgabe:
Einer von Spring
, Summer
, Autumn
oder Winter
, nach diesen Regeln:
- Ist die Position eingegeben
2
oder-2
(Arktis oder Antarktis), immer ausgegebenWinter
. - Ist die Positionseingabe
0
(Tropen), immer ausgegebenSummer
. - Ist die Positionseingabe
1
(nördliche Hemisphäre), Ausgabe einer der vier Jahreszeiten basierend auf der Monatseingabe:Spring
(m = [3,5]
);Summer
(m = [6,8]
);Autumn
(m = [9,11]
);Winter
(m = 12 or m = [1,2]
). - Ist die Positionseingabe
-1
(südliche Hemisphäre), Ausgabe einer der vier Jahreszeiten basierend auf der Monatseingabe:Spring
(m = [9,11]
);Summer
(m = 12 or m = [1,2]
);Autumn
(m = [3,5]
);Winter
(m = [6,8]
).
Herausforderungsregeln:
- Ausgang alle vier verschiedene Werte Ihrer Wahl anzeigt
Spring
,Summer
,Autumn
, oderWinter
(bitte angeben , was Sie in Ihrer Antwort verwendet haben).
Bonus -15 Bytes , wenn Sie AusgangSpring
,Summer
,Autumn
, oderWinter
als Text (Groß- und Kleinschreibung, so können vollständig Klein oder vollständig Groß- als auch anstelle des gebrauchten Titel-Falles). - Die Monatseingabe kann in jedem vernünftigen Format erfolgen. Kann entweder eine 0-indizierte oder eine 1-indizierte Ganzzahl, ein Datumsobjekt, eine Monatszeichenfolge usw. sein.
- Positionseingabe wird immer eines dieser möglichen fünf Eingänge sein
-2
,-1
,0
,1
,2
.
Allgemeine Regeln:
- Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich nicht von Code-Golf-Sprachen davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, eine möglichst kurze Antwort für "jede" Programmiersprache zu finden. - Für Ihre Antwort gelten Standardregeln , sodass Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden dürfen. Ihr Anruf.
- Standardschlupflöcher sind verboten.
- Wenn möglich, fügen Sie bitte einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie bei Bedarf auch eine Erklärung hinzu.
Testfälle:
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
Antworten:
Ruby ,
33 2725 BytesProbieren Sie es online aus!
Rückgabewerte sind:
0 -> Winter
1 -> Frühling
2 -> Sommer
3 -> Herbst
quelle
Python 2 , 29 Bytes
Probieren Sie es online aus!
Ein Port des Ruby-Ansatzes von GB , der sich als einige Bytes kürzer als mein eigener herausstellte:
32 Bytes
Probieren Sie es online aus!
Eine anonyme Funktion, die die Jahreszeiten als Zahlen 0 bis 3 zurückgibt, wobei sie Sommer, Herbst, Winter und Frühling in dieser Reihenfolge darstellen.
Zum Drucken der tatsächlichen Saisonnamen:
63 - 15 = 48 Bytes
Probieren Sie es online aus!
Es gibt die kombinierte Zeichenfolge, wenn jemand es will.
quelle
C (gcc) ,
7875 (-15 Bonus) = 60 BytesVerwenden von 1-basierten Monaten.
Bearbeiten: Mathematische Operatoren neu angeordnet und reduziert.
Probieren Sie es online aus!
quelle
(++a+m/3)%4
→ speichern++a+m/3&3
. Ista*a
es auch seltsam, wann genaua
, alsoa&1
sollte die Überprüfung in Ordnung sein, nein?05AB1E , 26-15 = 11 Bytes
Verwendet den von GB gefundenen Ansatz
Probieren Sie es online aus! oder als Testsuite
quelle