Tak więc w matematyce 1. klasy uczysz się nazw wielokątów. Trzy boki to trójkąt, 4 to kwadrat, a 5 to pięciokąt. Jednak w przypadku wyróżnień 1. stopnia posuwasz się nieco dalej.
Twoje wyzwanie
Istnieje system nazewnictwa wielokątów powyżej kilku stron, więc dowolnie duże wielokąty mają swoją nazwę.
Twoim zadaniem jest napisanie programu lub funkcji, która akceptuje nazwę wielokąta jako dane wejściowe i wyświetla liczbę stron, które ma.
Nazwy wielokątów są zdefiniowane jak w lewej kolumnie tego artykułu na Wikipedii z kilkoma wyjątkami.
Trójboki wielokątów będą nazywane trójkątem zamiast trygonu, a czworoboki wielokąta będą kwadratem zamiast czworokąta (załóżmy, że wszystkie wielokąty są regularne). W przeciwnym razie zostaną użyte nazwy w artykule.
Zasady
- Dane wejściowe będą wartością ciągu.
- Program powinien wydrukować wynik do STDOUT (lub powinien zwrócić liczbę całkowitą).
- Wprowadzone zostaną tylko wielokąty od 3 do 99.
- Twój program musi spełniać wszystkie przypadki testowe.
- Brak standardowych luk.
- Program nie musi nic robić w przypadku nieprawidłowych / spoza zakresu danych wejściowych.
- Punktacja jest w bajtach. Ponieważ jest to gra w golfa , najkrótszy program wygrywa.
Przypadki testowe
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
Liderów
Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jeśli chcesz umieścić w nagłówku wiele liczb (np. Ponieważ twój wynik jest sumą dwóch plików lub chcesz osobno wymienić kary za flagi tłumacza), upewnij się, że rzeczywisty wynik jest ostatnią liczbą w nagłówku:
# Perl, 43 + 2 (-p flag) = 45 bytes
Możesz także ustawić nazwę języka jako link, który pojawi się we fragmencie tabeli wyników:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
źródło
Odpowiedzi:
Rubinowy,
405207 bajtów207 bajtów
Ungolfed 207
405 bajtów:
Ungolfed 405
Być może nie jest to najlepsza propozycja golfa, ale może wygrać konkurs zaciemnionego kodu!
Test
źródło
Python2 -
357368 bajtówPonieważ jedynymi prawdziwymi wyjątkami od systemu są „kwadrat”, „hendekagon” i „dodekagon”, wszystkie inne liczby mają ten sam wzorzec, że mają „kai” dla drugich cyfr i „conta” / „deca” dla pierwszej cyfry.
Wyjaśnienie:
Działa to dla wszystkich danych wejściowych od 3 do 99 i drukuje wynik na konsoli.
Może być bardziej golfa, ale to jest tak daleko, jak mogę teraz iść.
** Edycja: Właśnie zdałem sobie sprawę, że to wydrukowane do STDERR, a nie STDOUT. Naprawiony kod jest trochę dłuższy:
źródło
q
zamiastsq
?import sys;
i po prostu używaszy=exit
. Robi to samo.Guma cynamonowa, 430 bajtów
Nie konkuruje, ponieważ guma cynamonowa powstała po tym wyzwaniu. To jest zrzut heksowy kodu źródłowego; możesz to odwrócić za pomocą
xxd -r
.Wypróbuj online.
źródło