Entonces, en matemáticas de 1er grado, aprendes los nombres de los polígonos. Tres lados son un triángulo, 4 es un cuadrado y 5 es un pentágono. Sin embargo, en los honores de 1er grado, vas un poco más allá.
Tu reto
Hay un sistema de nombres para polígonos por encima de algunos lados, por lo que los polígonos arbitrariamente grandes tienen un nombre.
Su tarea es escribir un programa o una función que acepte el nombre de un polígono como entrada y genere el número de lados que tiene.
Los nombres de los polígonos se definen como en la columna izquierda de este artículo de Wikipedia con algunas excepciones.
Los polígonos de tres lados se llamarán un triángulo en lugar de un trigón y los polígonos de 4 lados serán un cuadrado en lugar de un tetragón (suponga que todos los polígonos son regulares). De lo contrario, se utilizarán los nombres en el artículo.
Reglas
- La entrada será un valor de cadena.
- El programa debería imprimir el resultado en STDOUT (o debería devolver un número entero).
- Solo se ingresarán polígonos entre 3 y 99.
- Su programa debe satisfacer todos los casos de prueba.
- No hay lagunas estándar.
- El programa no necesita hacer nada para entradas no válidas / fuera de rango.
- La puntuación está en bytes. Como se trata de código de golf , gana el programa más corto.
Casos de prueba
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
Tablas de clasificación
Aquí hay un fragmento de pila para generar una tabla de clasificación regular y una descripción general de los ganadores por idioma.
Para asegurarse de que su respuesta se muestre, comience con un título, usando la siguiente plantilla de Markdown:
# Language Name, N bytes
¿Dónde N
está el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:
# Perl, 43 + 2 (-p flag) = 45 bytes
También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento de la tabla de clasificación:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
fuente
Respuestas:
Ruby,
405207 bytes207 bytes
Ungolfed 207
405 bytes:
Ungolfed 405
Quizás no sea la mejor presentación de golf, ¡pero podría ganar un concurso de código ofuscado!
Prueba
fuente
Python2 -
357368 bytesComo las únicas excepciones reales al sistema son "cuadrado", "hendecagón" y "dodecágono", todos los demás números siguen el mismo patrón de tener "kai" para los segundos dígitos y "conta" / "deca" para su primer dígito.
Explicación:
Esto funciona para todas las entradas entre 3-99 e imprime el resultado en la consola.
Podría ser más golfable, pero esto es lo más lejos que puedo llegar en este momento.
** Editar: Me acabo de dar cuenta, esta impreso en STDERR, no STDOUT. El código fijo es un poco más largo:
fuente
q
lugar desq
?import sys;
y solo usasy=exit
. Hace la misma cosa.Chicle de canela, 430 bytes
No compite desde que Cinnamon Gum se hizo después de este desafío. Este es un hexdump del código fuente; puedes revertirlo usando
xxd -r
.Pruébalo en línea.
fuente