Étant donné un entier positif <100 (de 1 à 99, y compris 1 et 99), sortez autant de casiers.
Un casier est défini comme suit:
+----+
| |
| |
| |
| nn |
+----+
où nn
est le numéro du casier, en base 10. S'il y a un nombre à 1 chiffre, il est exprimé avec un 0 devant. Par exemple, le casier numéro 2 affiche le numéro 02
.
Les casiers peuvent être empilés, mais seulement jusqu'à 2 de haut:
+----+
| |
| |
| |
| on |
+----+
| |
| |
| |
| en |
+----+
on
désigne un nombre impair, en
un nombre pair. Les casiers peuvent également être placés côte à côte.
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
Notez que le casier numéro 5 est un casier de numéro impair qui se trouve en bas. En effet, lorsque vous avez une entrée impaire, le dernier casier doit être placé sur le sol (car un casier en vol stationnaire coûte trop cher). L'exemple ci-dessus est donc la sortie attendue pour n = 5. n = 0 devrait retourner un rien.
Règles: méthodes standard d'entrée / sortie. Entrée dans n'importe quel format pratique, sortie sous forme de chaîne. Des échappatoires standard s'appliquent.
Cas de test:
Input
Output
---------------------
1
+----+
| |
| |
| |
| 01 |
+----+
--------------------- (newlines optional in case 1)
4
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+
| | |
| | |
| | |
| 02 | 04 |
+----+----+
---------------------
5
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
---------------------
16
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 01 | 03 | 05 | 07 | 09 | 11 | 13 | 15 |
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 02 | 04 | 06 | 08 | 10 | 12 | 14 | 16 |
+----+----+----+----+----+----+----+----+
C'est le code-golf , donc le code le plus court gagne!
1
doivent-elles être produites?Réponses:
Pyth , 66 octets
Suite de tests.
la source
Python 2,
201191185185171 171166164163 octetsEssayez-le en ligne!
la source
PHP, 191 octets
Essayez-le en ligne!
PHP, 235 octets
Cas 1 avec des nouvelles lignes optionnelles
Essayez-le en ligne!
Étendu
PHP, 300 octets
remplacer
["","",""]
par["\n","\n","\n"]
si vous voulez des nouvelles lignes pour le cas1
Essayez-le en ligne!
la source
Rubis,
256239201191183 octetsC'est terriblement long. Je travaillerai plus sur le golf.
la source
C (gcc) ,
426335300294282252249246244237 octetsCela doit vraiment être joué au golf
Essayez-le en ligne!
la source
-~n/2
place den/2+n%2
Lot, 305 octets
+----+
et| |
sont tous deux similaires+ +
en ce qu'ils peuvent être générés via une seule substitution, et il s'avère être légèrement plus court que de les générer séparément (la citation supplémentaire nécessaire pour|
s n'aide pas).la source
Pyth -
9774868075 octetsEssayez-le ici
la source
JavaScript ES6, 224 octets
Utilisé quelques idées de la réponse Python de junkie mathématique
Extrait de test
Nettoyé
la source
Fusain , 37 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Entrez le nombre de casiers dans
q
.Faites une boucle sur les casiers du
1
auq
inclus.Calculez la direction vers le casier suivant et répétez cette opération 5 fois (golfeur plutôt que d'utiliser des mouvements de saut).
Dessinez le casier, en commençant par le coin inférieur gauche. (Le coin inférieur droit prend également 4 octets tandis que le coin supérieur droit en prend 5. Le coin supérieur gauche ne prend que 3 octets mais le numéro du casier prendrait plus de temps à dessiner.)
Dessinez le zéro de tête du numéro de casier, si nécessaire.
Dessinez le numéro de casier inversé et de droite à gauche, ce qui le justifie à droite.
Revenez dans le coin inférieur gauche, prêt à calculer la direction du prochain casier.
Edit: les versions ultérieures de Charcoal prennent en charge cette solution de 32 octets:
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Prenez les nombres de
1
au nombre d'entrée inclus par paire. (Si le numéro d'entrée est impair, le dernier tableau n'aura qu'un seul élément.)Faites une boucle sur chaque paire dans l'ordre inverse.
Dessinez le zéro de tête du numéro de casier, si nécessaire.
Dessinez le numéro de casier inversé et de droite à gauche, ce qui le justifie à droite.
Déplacez-vous en haut à gauche du casier et dessinez-le. C'est également en bas à gauche du casier suivant, nous sommes donc prêts à dessiner le deuxième casier de la paire, le cas échéant.
Passez à la prochaine paire de casiers. (Cela devrait être avant la boucle intérieure pour une économie de 1 octet, mais le charbon de bois génère une sortie incorrecte pour une entrée de 1 pour une raison quelconque.)
la source