Quelques antécédents
Les tiges de comptage sont de petites barres (3-14 cm de long) qui ont été utilisées par les mathématiciens de nombreuses cultures asiatiques pendant plus de 2000 ans pour représenter un nombre entier ou une fraction. (Dans ce défi, nous nous concentrerons sur les entiers non signés). Il y avait aussi une version écrite, appelée chiffres de tige.
Voici comment ça fonctionne:
(Si à tout moment vous vous trompez, allez voir la représentation ascii de chaque chiffre et quelques exemples que j'ai inclus en bas)
Les chiffres des tiges sont un véritable système de positionnement numérique avec des chiffres pour 1-9 et des blancs pour 0. Les chiffres sont constitués de lignes horizontales et verticales; plus il y a de lignes, plus le chiffre est élevé. Une fois que vous avez dépassé cinq, vous mettez une ligne horizontale en haut pour ajouter 5 au nombre de lignes ci-dessous. Une ligne verticale est 1, deux lignes verticales 2, cinq lignes verticales est 5, une ligne verticale avec une ligne horizontale en haut est 6, quatre lignes verticales avec une ligne horizontale en haut est 9 (le chiffre le plus élevé).
Un vertical à 3 chiffres:
|||
|||
|||
|||
|||
Pour faciliter la lecture des chiffres des bâtonnets, ils ont utilisé une notation différente pour chaque chiffre alterné. La deuxième notation permute le rôle des lignes horizontales et verticales. de sorte que 3 est représenté par trois lignes horizontales et 8 par trois lignes horizontales avec une ligne verticale en haut.
Un 8 chiffres horizontal:
|
|
__|__
_____
_____
Savoir quelle notation utiliser est facile, comme dit précédemment, ils sont utilisés en alternance et Sun Tzu a écrit que "un est vertical, dix est horizontal". Donc, le chiffre le plus à droite est vertical et nous alternons à partir de là.
Le défi
Ces tiges ont été utilisées pour représenter des nombres et des fractions négatifs (comme expliqué dans l' article de wikipedia à leur sujet . Aux fins de ce défi, nous ne nous concentrerons que sur les nombres entiers positifs. L'objectif est simple:
Écrivez une fonction ou un programme complet qui prend une valeur entière en entrée de quelque façon que ce soit et imprime la représentation numérique de la tige de cet entier dans STDOUT (vous pouvez également écrire dans un fichier si cela fonctionne mieux). Le code le plus court en octets gagne.
Chaque chiffre sera représenté par 5x5 caractères ascii et séparés par deux colonnes de 5 espaces. La représentation exacte que vous utiliserez pour chaque chiffre est la suivante:
space between two digits (two colums):
0 digit, both vertical and horizontal (five columns):
1 digit, vertical:
|
|
|
|
|
2 digit, vertical:
| |
| |
| |
| |
| |
3 digit, vertical:
|||
|||
|||
|||
|||
4 digit, vertical:
|| ||
|| ||
|| ||
|| ||
|| ||
5 digit, vertical:
|||||
|||||
|||||
|||||
|||||
6 digit, vertical:
_____
|
|
|
|
7 digit, vertical:
_____
| |
| |
| |
| |
8 digit, vertical:
_____
|||
|||
|||
|||
9 digit, vertical:
_____
|| ||
|| ||
|| ||
|| ||
1 digit, horizontal:
_____
2 digit, horizontal:
_____
_____
3 digit, horizontal:
_____
_____
_____
4 digit, horizontal:
_____
_____
_____
_____
5 digit, horizontal:
_____
_____
_____
_____
_____
6 digit, horizontal:
|
|
|
|
__|__
7 digit, horizontal:
|
|
|
__|__
_____
8 digit, horizontal:
|
|
__|__
_____
_____
9 digit, horizontal:
|
__|__
_____
_____
_____
Les chiffres doivent être imprimés côte à côte. Les espaces de fin au-delà de la zone de délimitation du dernier chiffre ne sont pas autorisés. Des espaces de fin pour compléter la zone de délimitation du ou des derniers chiffres sont requis. Vous devez terminer la sortie avec une seule nouvelle ligne de fin. Les espaces de tête qui n'appartiennent pas à la zone de délimitation du premier chiffre sont également interdits.
Des échappatoires standard s'appliquent.
Exemple de sortie
Les lignes commençant par >
doivent être interprétées comme des entrées.
>12
| |
| |
| |
| |
_____ | |
>8037
| _____
| | |
__|__ _____ | |
_____ _____ | |
_____ _____ | |
>950
_____ _____
|| || _____
|| || _____
|| || _____
|| || _____
la source
Réponses:
Python 2 - 216
Mon premier coup, peut-être quelque chose à retirer, mais mon cerveau me fait mal, donc c'est assez bon pour l'instant
la source
JavaScript (ES6) 223
Fonction avec paramètre numérique, sortie sur console. NB Si le paramètre d'entrée pouvait être une chaîne, le code serait 5 caractères plus court et sans limite de 17 chiffres significatifs de nombres JS.
Tester
Testez dans la console Firefox.
F(12)
Production
F(8037)
Production
F(950)
Production
Non golfé
la source
PowerShell , 229 octets
Essayez-le en ligne!
Où cette chaîne présente des chiffres:
tiges verticales:
tiges horizontales:
Script déroulé:
la source