Le défi est simple: imprimez le dernier caractère, le milieu et le premier caractère du code source de votre programme, dans cet ordre.
Le caractère du milieu est défini comme suit, en supposant une longueur source de n
caractères et une indexation 1:
- Si
n
est égal, affiche lesn/2
-th etn/2 + 1
-thes caractères. (abcdef == cd
) - Si
n
est impair, imprimez le(n-1)/2 + 1
caractère. (abcde == c
)
Règles
- En l'absence de saisie, imprimez le dernier, le milieu et le premier caractère de votre code source, dans le formulaire
[last][middle][first]
. Ce sera 3-4 caractères. - La sortie ne doit contenir aucun espace de fin. Toutefois, si l’espace est le premier, le deuxième ou le dernier caractère, il doit être imprimé tel quel.
- Le code source doit être
n >= 3
long. - Le code doit être composé de
>= 3
caractères uniques. - Les failles standard sont interdites.
- C'est du code-golf , donc la solution la plus courte pour les personnages gagne.
Des échantillons
# Form: [code] --> [output]
xyz --> zyx
abcd --> dbca
1 --> # not allowed: too short
abcde --> eca
aaabb --> # not allowed: not enough unique characters
System.out.print("S;pr"); --> ;prS
this is a test --> ts t
123[newline]45 --> 53[newline]1
121
pour un grand nombre de langues.-
pour la négation et imprime implicitement avec un saut de ligne,\n1-
est un trois en trois. Ma recherche a jusqu'ici été infructueuse.Réponses:
JavaScript,
97 octetsLes sorties:
NaN
Essayez-le en ligne!
la source
Herbe , 17 octets
Essayez-le en ligne!
-2 octets grâce à jimmy23013.
Sorties
www
. Grass ignore tous les personnages saufw
,W
etv
. Les deuxV
s sont donc ignorés; ils sont là pour s'assurer que le caractère du milieu est unw
- je n'ai aucune idée de la sortiev
ouW
de Grass… J'aurais pu utiliser un autre caractère à la place deV
, mais jeV
conserve l'esthétique du code.la source
x
s (ou tout autre personnage non Grass, que Grass ignore) pour déplacer un élémentw
au bon endroit.wWWwww wWWwWWWww
V
s parce que je le trouve plus joli. ;-)brainfuck , 17 octets
Essayez-le en ligne!
Pour les fichiers non imprimables, cela peut être réduit à 7 octets:
␀..␀_.␀
la source
U
comme instruction. Fonctionnellement, le code est-[>+<---]>.
, donc la sortie attendue serait.--
, mais elle ne serait pas sortie.U
s et cet interprète les ignore heureusement. Est-ce que toutes les réponses comportant des commentaires ou des espaces (ou tout ce qui importe peu pour la langue) doivent être prises en compte?U-[>+<-UU--]>...U
? Dans sa forme actuelle, le code ne montre qu'un seul Uÿ-.ÿ..ÿ
? C'est imprimable et court.Langage de programmation Shakespeare , 119 octets
Essayez-le en ligne!
Imprime trois espaces. Sans espaces d'impression:
Langage de programmation Shakespeare , 227 octets
Essayez-le en ligne!
Comme ma réponse INTERCAL sans nouvelle ligne, elle est conçue pour que le dernier caractère du programme soit identique au caractère du milieu (bien que dans ce cas ce ne soit pas aussi le premier), en désactivant la seconde moitié du code jusqu'à ce qu'ils soient lus. rencontre. (Je ne suis pas sûr si j'aurais pu construire 46 en moins d'octets ou non, ou si j'aurais pu jouer d'autres parties de la première moitié de plus.)
la source
!
Python 2 ,
13 à11 octetsPour rendre les espaces clairs:
Essayez-le en ligne!
-2 octets, grâce à wastl!
la source
RProgN 2 , 3 octets
Essayez-le en ligne!
Je pense que c'est valide?
la source
1
et suis0
poussé sur une pile, puis un pop-print implicite à la fin du programme? Oui c'est valide[quine]
défis, avant que les règles quine ne soient modifiées.tac
Linux.05AB1E ,
75 octetsSorties
R \n
.-2 octets en vous inspirant de la réponse de @Neil 's Batch , assurez-vous donc de le faire revenir également!
Essayez-le en ligne.
Alternative de 5 octets par @Grimy :
Sorties
12\n
.Essayez-le en ligne.
Réponse initiale de 7 octets :
Sorties
?«'
.Essayez-le en ligne.
Explication:
la source
PHP , 9 octets
Essayez-le en ligne!
la source
<?
balise, vous pouvez utiliser l'une des solutions triviales à 4 octets, comme par exemple1231
: tout élément sans caractère spécial comme premier et dernier, aucun autre caractère au milieu. Votre réponse peut être la réponse la plus courte en code réel PHP.Gelée , 5 octets
Essayez-le en ligne!
La sortie a deux caractères distincts, mais le code en a aussi un troisième.
Version triviale à 4 octets:
la source
121
aussi une réponse triviale valide?Excel, 9 octets
Tant de parenthèses.
Remarque: le caractère du milieu renvoyé peut en réalité être n'importe quel caractère puisqu'il s'agit du centre du code.
la source
"
. Bien joué!Ruby , 6 octets
Essayez-le en ligne!
Cette sortie
" "
plus une nouvelle ligne. Le code se termine par a"
, les deux caractères du milieu sontet
"
, et il commence par une nouvelle ligne.la source
Langue de lot DOS / Windows, 9 octets
la source
Ruby ,
11 à9 octetsEssayez-le en ligne!
la source
Lot, 9 caractères
Le deuxième et le deuxième caractères sont les deux
h
, puisecho
imprime une nouvelle ligne par défaut, qui est le premier caractère du script.la source
PowerShell, 3 octets
Fonctionne uniquement sous Microsoft Windows.
La sortie est malheureusement de 8 octets en UTF-16. Mais la question dit de sortir les caractères, et non les octets. UTF-16 n'est sans doute qu'un des moyens pris en charge pour représenter les caractères dans PowerShell. Ils ne sont pas interprétés différemment d'un fichier ASCII.
la source
0x0a != 0x0d != 0x31
:)Bash (
15 à11 caractères)qui imprime
|rev
la source
echo<space>e<space><space>e
sortie sera produite à lae<space>e<newline>
place dee<space>e
, je l'ai donc rejetée. La nouvelle ligne fait partie de la sortie, c'est pourquoi GrzegorzOledzki utilise l'-n
option. Essayez enecho -n e-e
ligne vs Essayez enecho e e
ligne . Et encore une fois, s'il vous plaît, ne modifiez pas la réponse des autres peuples. Si vous avez un golf à suggérer, laissez un commentaire.printf pfp
, mais seulement parce que nous avons besoin de deux espaces à cause de cette définition du caractère du milieu, sinon ce serait 10 ...ArnoldC , 61 octets
Essayez-le en ligne!
Réponse triviale dans ArnoldC. Le 31ème octet est l'espace juste avant le littéral de chaîne.
la source
Sous-charge ,
9 octets7 octetsMerci à Khuldraeseth na'Barya pour la solution améliorée!
Pour autant que je sache, c'est maintenant impensable:
Essayez-le en ligne!
la source
Langage de programmation Shakespeare ,
163153 octets-10 octets grâce à Jo King.
Essayez-le en ligne!
Ma première réponse SPL! Sorties
!BB
.Il existe une autre réponse SPL par Unrelated String; dans cette réponse, ils ne génèrent que des espaces de 119 octets ou des caractères de non-espace de 227 octets. Celui-ci se situe entre, et génère également des caractères non-espace.
Deux astuces sont utilisées ici:
!
.
!
.
B
, donc le titre de la pièce estB
et j'ai besoin que le second "gros" soit "Big", ce qui fonctionne puisque SPL est insensible à la casse.Comme j'avais besoin de cette capitale
B
et d'un point d'exclamation à la fin, j'ai décidé de faire hurler Ajax de plus en plus fort à travers la scène.la source
CJam , 7 octets
Essayez-le en ligne!
la source
0 1 0
est plus court et comporte également trois caractères distincts (je ne veux pas republier mon approche Jelly: P).Befunge-93 , 7 octets
Essayez-le en ligne!
Explication
La sortie est
0 .
la source
APL (Dyalog Unicode) ,
5 à4 octetsProgrammes complets.
Solution ennuyeuse de J.Sallé:
Imprime ce nombre. Une solution beaucoup plus intéressante:
Essayez-le en ligne!
APL ignore les zéros non significatifs, il s’agit donc simplement d’un format mis à l’échelle pour 10 × 10¹ = 100.
la source
Chef , 447 octets
Essayez-le en ligne!
Une soumission sérieuse,
196177 octetsgrâce à A__
Essayez-le en ligne!
la source
Python 3,
19 octets13 octetsLa fonction d'impression ajoute une nouvelle ligne par défaut afin que le code commence par une nouvelle ligne. Le dernier caractère du code est un ")", c'est donc imprimé en premier. Pour rendre le nombre de caractères irrégulier, un espace est inséré avant l'argument de la fonction d'impression. S'il vous plaît excuser la saluité du code.
Les sorties:
)(\n
Essayez-le en ligne.
la source
print
- dessus et un espace à l'intérieurprint
après")("
. Sorties:)(
avec une nouvelle ligne à la fin.end
suivantes ne sont pas comptabilisées en tant que paramètre par défaut de la fonction d'impression.Espaces blancs ,
3129 octets-2 octets grâce à @RobinRyder .
Lettres
S
(espace),T
(tabulation) etN
(nouvelle ligne) ajoutées uniquement en surbrillance.[..._some_action]
ajouté comme explication seulement.Essayez-le en ligne (avec des espaces bruts, des onglets et des nouvelles lignes uniquement).
Contient un no-op
a
(peut être n'importe quel caractère non-blanc) pour rendre la longueur impaire. Il est ajouté avant la première moitié du programme afin que le caractère du milieu soit également un espace, car le caractère du milieu serait devenu une nouvelle ligne s'il se trouvait dans la deuxième moitié du programme. Tous les caractères non-blancs sont ignorés dans les programmes Whitespace.la source
Haskell , 17 octets
Essayez-le en ligne!
la source
MathGolf ,
54 octets-1 octet en utilisant la solution triviale présentée par @ErikTheOutgolfer dans sa réponse Jelly , qui fonctionne pour toutes les langues avec une sortie implicite sans fin de nouvelle ligne.
Essayez-le en ligne.
Réponse originale de 5 octets :
Sorties
x ù
.Essayez-le en ligne.
Explication:
la source
Brain-Flak , 11 octets
Essayez-le en ligne!
Explication
Nous devons mettre 3 choses sur la pile. Le moyen le plus rapide de le faire est de mettre 3 1 (ou zéros) sur la pile. Maintenant que
(point de code 1) ne fait rien dans Brain-Flak, nous pouvons les ajouter au programme au premier et au deuxième rang. Maintenant, cela semble un peu trompeur alors voici deux autres réponses qui sont moins trompeuses à mon avis.
Imprime les accolades, 31 octets
Essayez-le en ligne!
Cette réponse imprime des accolades de sorte que les caractères imprimés soient réellement pertinents pour le code. Elle comporte un caractère de remplissage pour rendre la longueur impaire, de sorte que nous ne devons imprimer qu'un seul caractère du milieu.
Contient seulement des accolades, 32 octets
Essayez-le en ligne!
Ceci est un programme entre accolades à la fois la source et (en conséquence) la sortie est entièrement composée d'accolades (le personnage de Brain-Flak se soucie en réalité).
la source
AsciiDots - 9 octets
Sortie:
.$.
Le code commence par un
.
, se termine par un.
et le caractère du milieu est un$
. La citation simple au milieu définit le mode d'impression par points pour qu'il lise simplement les caractères directement dans le flux de sortie.Il est possible que cela soit réduit, mais je commence à en douter. Pour imprimer trois caractères, le guillemet simple doit être utilisé, car le guillemet double nécessiterait une fin à la chaîne pour pouvoir être imprimé. Cependant, cela signifie que la citation simple doit a) être suivie de trois caractères et b) ne peut pas être le caractère central. Afin de réduire le nombre d'octets à sept octets, j'ai envisagé d'essayer de réutiliser le début du point comme l'un des caractères imprimés (un peu comme le programme quine d'AsciiDot). Cependant, j’ai trouvé que la séquence la plus courte disponible pour l’impression était
($'
qui aurait dû imprimer quatre caractères sur trois, ou trois caractères sur quatre. J'ai aussi essayé quelques méthodes alternatives, comme essayer d'imprimer la valeur du point (qui est 0) en tant que l'un des caractères. Bien que certains systèmes fonctionnent, j’ai trouvé ceux-ci plutôt complexes et volumineux. Ainsi, je pense que ce qui précède est la plus petite solution. (Je mettrai à jour si je trouve quelque chose de plus petit)la source
/'$'-.[newline]\.
Essayez-le en ligne!MATLAB, 13 à
15octetsLes sorties
) d
Version précédente (15 octets, sortie moins stricte):
Les sorties
'''
la source
ans =\n '''\n
. Ce n’est généralement pas un problème, mais ce défi semble imposer une norme plus stricte. Mais alors, j’interprète peut-être mal le défi.