Ainsi, en mathématiques de première année, vous apprenez les noms des polygones. Trois côtés est un triangle, 4 est un carré et 5 est un pentagone. Cependant, dans les honneurs de première année, vous allez un peu plus loin.
Votre défi
Il existe un système de dénomination pour les polygones au-dessus de quelques côtés, donc les polygones arbitrairement grands ont un nom.
Votre tâche consiste à écrire un programme ou une fonction qui accepte le nom d'un polygone en entrée et affiche le nombre de côtés qu'il possède.
Les noms des polygones sont définis comme dans la colonne de gauche de cet article wikipedia à quelques exceptions près.
Les polygones à trois côtés seront appelés un triangle au lieu d'un trigone et les polygones à 4 côtés seront un carré au lieu d'un tétragone (supposons que tous les polygones sont réguliers). Sinon, les noms de l'article seront utilisés.
Règles
- L'entrée sera une valeur de chaîne.
- Le programme doit imprimer le résultat dans STDOUT (ou il doit retourner un entier).
- Seuls les polygones entre 3 et 99 seront entrés.
- Votre programme doit satisfaire tous les cas de test.
- Pas de failles standard.
- Le programme n'a rien à faire pour les entrées invalides / hors plage.
- La notation est en octets. Puisqu'il s'agit de code-golf , le programme le plus court l'emporte.
Cas de test
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
Classements
Voici un extrait de pile pour générer à la fois un classement régulier et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse apparaît, veuillez commencer votre réponse avec un titre, en utilisant le modèle de démarque suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores dans le titre en les rayant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs nombres dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou si vous souhaitez répertorier les pénalités de drapeau d'interprète séparément), assurez-vous que le score réel est le dernier numéro de l'en-tête:
# Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de la langue un lien qui apparaîtra ensuite dans l'extrait de classement:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
la source
Réponses:
Rubis,
405207octets207 octets
Ungolfed 207
405 octets:
Ungolfed 405
Peut-être pas la meilleure soumission de golf, mais cela pourrait gagner un concours de code obscurci!
Tester
la source
Python2 -
357368 octetsÉtant donné que les seules véritables exceptions au système sont "carré", "hendécagone" et "dodécagone", tous les autres nombres suivent le même schéma ayant "kai" pour les deuxièmes chiffres et "conta" / "déca" pour leur premier chiffre.
Explication:
Cela fonctionne pour toutes les entrées entre 3-99 et imprime le résultat sur la console.
C'est peut-être plus jouable au golf, mais c'est aussi loin que je peux aller maintenant.
** Edit: je viens de réaliser, ceci imprimé sur STDERR, pas STDOUT. Le code fixe est un peu plus long:
la source
q
lieu desq
?import sys;
et utilisez simplementy=exit
. Ça fait la même chose.Gomme de cannelle, 430 octets
Non compétitif puisque Cinnamon Gum a été fabriqué après ce défi. Il s'agit d'un vidage hexadécimal du code source; vous pouvez l'inverser en utilisant
xxd -r
.Essayez-le en ligne.
la source