Итак, в 1 классе по математике вы узнаете названия полигонов. Три стороны - это треугольник, 4 - это квадрат, а 5 - это пятиугольник. Тем не менее, в 1-м классе отличием вы идете немного дальше.
Ваш вызов
Существует система именования полигонов выше нескольких сторон, поэтому произвольно большие полигоны имеют имя.
Ваша задача - написать программу или функцию, которая принимает имя многоугольника в качестве входных данных и выводит количество сторон него есть.
Имена полигонов определены как в левом столбце этой статьи в Википедии. с некоторыми исключениями.
Трехсторонние многоугольники будут называться треугольником вместо треугольника, а четырехсторонние многоугольники будут квадратом вместо четырехугольника (предположим, что все многоугольники правильные). В противном случае будут использованы имена в статье.
правила
- Ввод будет строковым значением.
- Программа должна напечатать результат в STDOUT (или она должна вернуть целое число).
- Будут введены только полигоны от 3 до 99.
- Ваша программа должна удовлетворять всем тестовым случаям.
- Нет стандартных лазеек.
- Программе не нужно ничего делать для недопустимых / недоступных входов.
- Оценка в байтах. Поскольку это код-гольф , выигрывает самая короткая программа.
Контрольные примеры
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
Leaderboards
Вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Если вы хотите включить в свой заголовок несколько чисел (например, потому что ваш счет равен сумме двух файлов или вы хотите перечислить штрафы за флаг интерпретатора отдельно), убедитесь, что фактический результат является последним числом в заголовке:
# Perl, 43 + 2 (-p flag) = 45 bytes
Вы также можете сделать название языка ссылкой, которая затем будет отображаться в фрагменте списка лидеров:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
источник
Ответы:
Рубин,
405207 байт207 байтов
Ungolfed 207
405 байтов:
Ungolfed 405
Может быть, не самая лучшая подача в гольф, но она может выиграть в конкурсе запутанного кода!
Тестовое задание
источник
Python2 -
357368 байтПоскольку единственными реальными исключениями для системы являются «квадрат», «hendecagon» и «dodecagon», все остальные числа следуют той же схеме: «kai» для вторых цифр и «conta» / «deca» для их первой цифры.
Объяснение:
Это работает для всех входов от 3 до 99 и выводит результат на консоль.
Может быть, лучше играть в гольф, но это насколько я могу пойти прямо сейчас.
** Редактировать: я только что понял, это напечатано в STDERR, а не STDOUT. Фиксированный код немного длиннее:
источник
q
вместоsq
?import sys;
и просто используетеy=exit
. Это делает то же самое.Корица, 430 байт
Не конкурирует, так как Корица Gum была сделана после этого испытания. Это hexdump исходного кода; Вы можете изменить это, используя
xxd -r
.Попробуйте онлайн.
источник