Le défi consiste à générer une règle de comptage de caractères ASCII au format suivant:
+-------------------------------------------------------------------------+
|| | | | | | | | | | | | | | | |
|0 10 20 30 40 50 60 70 |
| |
+-------------------------------------------------------------------------+
La longueur de la règle doit être évolutive à n'importe quel multiple de 10.
Règles:
- La règle doit être horizontale.
- Disons, pour simplifier les choses, que la règle doit fonctionner jusqu'à la marque 1000, tous les nombres alignés à gauche, un espace après le nombre final .
- Demander une règle de longueur nulle devrait afficher NaR
- Les nombres négatifs doivent imprimer une règle inversée (-90, -80, -70, ...) avec des nombres alignés à droite, dans le même format exact que celui ci-dessus sinon
Et, juste imprimer sur la console est très bien
Prêt, prêt, golf!
Réponses:
Python - 227
232Prise en charge de toutes les spécifications
edit: expression du générateur améliorée.
La prise en charge des nombres négatifs alignés à droite ajoute une quantité surprenante de code.
Exemples de sorties:
-30 30
-30 -30
100 150
-1000 -950
la source
Je ne vais pas battre les langues dynamiques aujourd'hui, mais de toute façon ...
Haskell, 341
J'ai pris la liberté d'échanger les caractères ASCII réels avec des caractères de dessin de boîte Unicode plus beaux.
la source
Python 2.7,
342 266260 caractèresrenvoie un
tuple de chaquechaîne deligne, que vous pouvez ensuite imprimer ou enregistrer dans un fichier (je préfère ce dernier pour des longueurs supérieures à 70 car la console le fera sembler foiré avec un habillage)Suppose
y
êtreune chaîne (raw_input () n python ou sys.argv [1] si vous souhaitez invoquer via cmd)un entier (par exemple avec input () dans 2.x ou int (input ()) dans 3.x )J'en ai fait une fonction pour être plus flexible
édition: réduit à 266 caractères. ne renvoie plus un tuple, mais une chaîne à la place. Prend maintenant un entier au lieu d'une chaîne comme argument
edit2: réduit à 260 caractères, fonction de ligne unique
note: gère les nombres négatifs, mais ne justifie pas correctement (je ne pense pas vraiment que la justification soit trop importante de toute façon
la source
PowerShell ,
256253233225222 octetsEssayez-le en ligne!
Moins golfé:
la source
Python,
291241 caractèresUne approche assez simple. Je suis sûr que cela peut être beaucoup amélioré.
J'ai essayé de suivre les directives dans les commentaires, mais je ne supporte pas les nombres négatifs (c'était une blague, j'espère).
Ceci est un programme, imprime la règle sur la sortie standard. Si votre écran est suffisamment large, il devrait prendre en charge des règles assez longues.
la source
C ++, 392
Ceci est programmé à l'aide de la console Windows, donc j'ai juste choisi une taille de règle maximale de 70, ça va juste planter pour quelque chose de plus grand. Les nombres négatifs (jusqu'à -70) et 0 sont traités correctement.
la source
Python - 208
(ne prend pas en charge les nombres négatifs alignés à droite)
Je pense que mon truc préféré était de générer des chaînes bien plus longues que nécessaire, puis de les tronquer, par exemple:
Je souhaite juste qu'il y ait une option de formatage de chaîne plus concise pour l'alignement à gauche (sauf s'il y en a une que je ne connais pas)
la source
Perl 5.14,
198224 caractèresPeut probablement être raccourci beaucoup plus loin, mais voici une
premièreseconde tentative (avec des sauts de ligne insérés pour plus de lisibilité):EDIT: édité pour mourir avec "NaR" lorsque l'entrée est
0
et pour prendre en charge la plage négative.EDIT2: Je n'ai pas eu l'occasion de travailler davantage sur ce sujet, et je viens de remarquer la règle alignée à droite pour les nombres négatifs, que mon code ne prend pas en charge, donc je pense qu'une autre solution devrait être marquée comme réponse si le la date limite a été atteinte.
la source