Votre tâche est simple. Publiez un extrait de code dans n'importe quelle langue qui, s'il est répété n fois, affichera n en décimal, octal et hexadécimal, dans cet ordre, séparés dans des espaces. n est un entier supérieur à zéro. Il n'y a pas de zéros non significatifs. La réponse la plus courte l'emporte
Exemple
Si l'extrait est ABC
alors le cas de test est
ABC
1 1 1
ABCABC
2 2 2
ABCABCABCABCABCABCABCABCABC
9 11 9
ABCABCABCABCABCABCABCABCABCABCABCABC
12 14 C
ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC
18 22 12
1 01 0x1
? (Comprend les préfixes)Réponses:
Japt, 12 octets
Merci à @ETHproductions pour avoir économisé 2 octets!
Identique à ma 𝔼𝕊𝕄𝕚𝕟 réponse.
la source
[°TTs8 TsG]¸
Perl, 30 octets
Revenez au début de la ligne, incrémentez le compteur et le compteur d'impression en remplaçant l'ancienne sortie.
la source
JavaScript,
54 53 5147 octets4 octets enregistrés grâce à @ user81655
Je suis en fait un peu surpris que cela fonctionne.
Explication
Essayez-le en ligne
la source
ReferenceError: Can't find variable: d
même en mode lâche D:d=d?d+1:1
marche?C ++,
205179 octets(Pas de nouvelle ligne de fin - une fois copiée, la première ligne de la copie et la dernière ligne de l'original doivent coïncider)
Fondamentalement, cela fonctionne en créant une séquence de variables statiques qui, lors de la construction, incrémentent un compteur de variables globales. Ensuite, lors de la destruction, si le compteur n'est pas 0, il fait toute sa sortie et remet le compteur à zéro.
Afin de définir une séquence de variables sans conflits de noms, nous utilisons la macro expliquée comme suit:
qui s'appuie un peu sur les caprices du processeur de chaînes. Nous utilisons
z
plusieurs fois pour définir des classes / variables qui n'entreront pas en conflit lorsqu'elles seront copiées sur des lignes distinctes. De plus, les définitions qui ne doivent apparaître qu'une seule fois sont placées sur la première ligne, qui est commentée dans des copies du code. Les instructions#define
et#include
ne se soucient pas qu'elles soient répétées, donc ne nécessitent aucune manipulation particulière.Ce code présente également un comportement non défini dans l'instruction:
car il n'y a pas de points de séquence, mais c est modifié et accessible. LLVM 6.0 donne un avertissement, mais le compile comme vous le souhaitez - qui
--c
évalue avantc
. On pourrait, au détriment de deux octets, ajoutez l'instruction--c;
avant que les sorties et les changements--c
dansprintf
lac
, qui se débarrasser de l'avertissement.Remplacé
std::cout
par uneprintf
sauvegarde de 26 octets grâce à une suggestion de mon frère.la source
CJam,
201918 octetsMerci à @ MartinBüttner pour avoir joué au golf sur 1 octet!
Essayez-le en ligne!
Comment ça marche
la source
𝔼𝕊𝕄𝕚𝕟, 14 caractères / 28 octets
Try it here (Firefox only).
Première réponse! Bien qu'il existe probablement de meilleures façons de gérer cela.
Explication
la source
MATL , 26 octets
Utilise la version actuelle (6.0.0) . Fonctionne sur Octave.
Exemples
Une fois que:
Deux fois:
16 fois:
Explication
Le nombre d'éléments dans la pile est utilisé pour indiquer combien de fois nous avons exécuté l'extrait de code
la source
OCaml, 198 octets
Inclut une nouvelle ligne de fin et nécessite que le nom de fichier commence par un tilde (j'ai utilisé
~.ml
; vous pouvez l'exécuter avecocaml \~.ml
) car c'est le caractère ASCII imprimable standard le plus apprécié. Abuse le fait que tous les caractères d'une chaîne sont modifiables etSys.argv.(0).[0]
est le premier caractère du nom de fichier.Cela ne devrait fonctionner que pour n = 1 à 126, car le code ASCII
~
est 126 et j'en ajoute un à la sortie. Il pourrait être raccourci de deux octets si nous voulons seulement n = 1 à 125. Après qu'il soit répété 126 fois, il reviendra à n = 1.C'est mon tout premier golf, donc tout commentaire ou amélioration serait très apprécié.
Version non golfée:
la source
Sys.argv.(0).[0]
. Je ne connais cependant pas grand chose à OCaml.TeaScript ,
2120 octetsJe devrais le fermer automatiquement
;
Essayez-le en ligne
Explication
┼
devient++
la source
Perl, 40 octets
Il y a une dernière ligne derrière le colon.
Traite tout après la première ligne comme un document ici et compte le
z
contenu. Pour chaque nouvelle copie du code, unez
est ajoutée. Nous devons ajouter1
au nombre, car il n'y en a pas pour le premier extrait (celui qui est exécuté).Si une sortie supplémentaire vers stderr est autorisée, nous pouvons omettre les 2 guillemets simples
''
et descendre à 38 octets. Sans''
perl émet un avertissement concernant une fonctionnalité obsolète.la source
Mathematica, 76 octets
Notez qu'il
n
ne devrait pas y avoir de définitions auparavant.Ici, le comportement de
;
est utilisé. L'extrait ci-dessus est un seulCompoundExpression
, cependant, lorsque quelques extraits sont rassemblés, il y en a toujours unCompoundExpression
comme indiqué ci-dessous. (Certains réarrangements inutiles sont effectués.)Donc, on ne peut pas faire fonctionner un tel extrait si l'écriture est explicite
CompoundExpression
. De plus, presque tout ce que vous aimez peut être mis avant la première;
telle queE
,Pi
ouMandelbrotSetPlot[]
,.la source
bash, 49 octets
Fichier
count.bash
:... pas de retour à la ligne.
Courir:
la source
Python 2, 54 octets
Pas de nouvelle ligne de fin. Sorties dans le formulaire
1 01 0x1
.Si ça ne va pas, 56 octets
Une fois collés les uns devant les autres, la longueur du fichier s'allonge d'une ligne pour chaque fois collé. Le cas de base commence par 2 lignes, vous devez donc soustraire 1 de la longueur de la ligne. Le calcul est supprimé par le commentaire.
la source
"%d %o %x"%(n,n,n)
, c'est plutôt cool. Je ne savais pas que tu pouvais faire ça. S'il s'avère que laisser des préfixes n'est pas correct, je vais devoir emprunter cela.Python 2.x 140 octets
Ce n'était pas censé être une solution trop compétitive, mais une méthode que j'ai trouvée amusante, étant pour une chose, une tentative de golf à code multithread .
Conserve un compteur, génère un thread pour chaque comptage et si le compteur n'a pas changé lorsque la minuterie des compteurs s'éteint après avoir terminé un problème mathématique coûteux (au lieu d'une minuterie pour économiser des octets), la chaîne formatée est imprimée.
Quelques exemples de configurations et leurs sorties:
et quinze copies de pâtes:
la source
thread.start_new_thread
Python aurait-il pu penser à un pire nom de méthode pour jouer au code?Perl 5 , 31 octets
Utilise la même approche que ma réponse pour 'Je double la source, tu double la sortie!' .
Essayez-le en ligne!
la source
Rubis, 35 octets
Chaque extrait de code incrémente
$.
(qui commence à 0 si aucun fichier n'a été lu), mais seul le dernier produit quelque chose.*-~-0
évalue à*1
, ce qui signifie imprimer la chaîne une fois, mais avec la concaténation, elle devient*-~-01
une expression octale évaluant à 0. Puisque$><<
n'inclut pas de retour à la ligne de fin, l'impression de la chaîne vide ne signifie rien imprimer.la source