In der 1. Klasse lernen Sie also die Namen von Polygonen. Drei Seiten sind ein Dreieck, 4 ein Quadrat und 5 ein Fünfeck. In der ersten Klasse geht man jedoch noch ein bisschen weiter.
Deine Herausforderung
Es gibt ein Benennungssystem für Polygone über einigen Seiten, so dass beliebig große Polygone einen Namen haben.
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, die den Namen eines Polygons als Eingabe akzeptiert und die Anzahl seiner Seiten ausgibt .
Die Namen der Polygone sind mit wenigen Ausnahmen wie in der linken Spalte dieses Wikipedia-Artikels definiert .
Dreiseitige Polygone werden als Dreieck anstelle eines Trigons und vierseitige Polygone als Quadrat anstelle eines Vierecks bezeichnet (vorausgesetzt, alle Polygone sind regelmäßig). Andernfalls werden die Namen im Artikel verwendet.
Regeln
- Die Eingabe ist ein Zeichenfolgenwert.
- Das Programm sollte das Ergebnis an STDOUT ausgeben (oder es sollte eine Ganzzahl zurückgeben).
- Es werden nur Polygone zwischen 3 und 99 eingegeben.
- Ihr Programm muss alle Testfälle erfüllen.
- Keine Standardlücken.
- Das Programm muss nichts für ungültige / außerhalb des Bereichs liegende Eingaben tun.
- Die Bewertung erfolgt in Byte. Da dies Code-Golf ist , gewinnt das kürzeste Programm.
Testfälle
3 triangle
4 square
5 pentagon
10 decagon
11 hendecagon
12 dodecagon
13 triskaidecagon
20 icosagon
21 icosikaihenagon
22 icosikaidigon
34 triacontakaitetragon
35 triacontakaipentagon
36 triacontakaihexagon
47 tetracontakaiheptagon
48 tetracontakaioctagon
49 tetracontakaienneagon
64 hexacontakaitetragon
80 octacontagon
81 octacontakaihenagon
99 enneacontakaienneagon
Bestenlisten
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
quelle
Antworten:
Ruby,
405207 Bytes207 Bytes
Ungolfed 207
405 Bytes:
Ungolfed 405
Vielleicht nicht die beste Golf-Einsendung, aber vielleicht gewinnt sie einen verschleierten Code-Wettbewerb!
Prüfung
quelle
Python2 -
357368 ByteDa die einzigen wirklichen Ausnahmen des Systems "Quadrat", "Endecagon" und "Zwölfeck" sind, folgen alle anderen Zahlen dem gleichen Muster: "Kai" für die zweite Ziffer und "Conta" / "Deca" für die erste Ziffer.
Erläuterung:
Dies funktioniert für alle Eingaben zwischen 3 und 99 und gibt das Ergebnis auf der Konsole aus.
Könnte mehr Golf sein, aber das ist so weit, wie ich jetzt gehen kann.
** Edit: Mir ist gerade aufgefallen, dass dies auf STDERR gedruckt wird, nicht auf STDOUT. Der feste Code ist etwas länger:
quelle
q
stattdessen nur auf testensq
?import sys;
und verwenden nury=exit
. Es macht das Gleiche.Zimtgummi, 430 Bytes
Nicht konkurrierend, da Zimtgummi nach dieser Herausforderung hergestellt wurde. Dies ist ein Hexdump des Quellcodes. Sie können es mit umkehren
xxd -r
.Probieren Sie es online aus.
quelle