Notez que ce n'est pas la même chose que Imprimer l'alphabet quatre fois .
Cette tâche consiste à écrire un programme pour générer quatre copies de chaque lettre de l'alphabet anglais, une lettre par ligne, sur la sortie standard:
A
A
A
A
B
B
B
B
etc.
La sortie doit inclure des retours à la ligne après chaque lettre.
Les lettres majuscules sans sortie supplémentaire sont préférées; cependant, les lettres minuscules et / ou les espaces blancs supplémentaires sont acceptables si la mise en majuscule / suppression allongerait votre solution.
MODIFIÉ POUR AJOUTER: La solution doit être suffisamment complète pour être exécutée. Je devrais pouvoir invoquer une implémentation de la langue, coller le code de la réponse et obtenir des résultats, sans taper de code supplémentaire.
La question ci-dessus de l'exhaustivité s'est posée dans le contexte d'une solution C. Il doit sûrement y avoir une règle ou une convention permanente à ce sujet sur un site de golf à code? Si c'est le cas, je me plierai volontiers aux directives de la communauté. Mais c'est mon point de vue:
En ce qui concerne spécifiquement C, vous devez inclure (et compter) le
main(){
...}
autour du code, car il ne compilera pas autrement. Les avertissements car il n'y a pas de#include <stdio.h>
problème tant que le code compile toujours. En général, un langage compilé nécessite une unité compilable.Une expression nue qui donne les résultats souhaités est acceptable s'il existe un moyen d'exécuter directement l'expression; par exemple, si la langue a un REPL. Vous pouvez donc soumettre Haskell sans un
main=
tant qu'il fonctionne réellement comme écrit, par exemple à l'ghci
invite. Mais puisque cela signifie mettrelet
vos déclarations, ce peut être une victoire nette de s'en tenir aurunhaskell
format.De même, les
awk
scripts doivent être dansBEGIN
(ouEND
, avec l'hypothèse que stdin est attaché à/dev/null
) des blocs car nous ne traitons aucune entrée.
etc.
la source
Réponses:
APL (5)
Format matriciel (
⍪
) de 4 réplications (4/
) de l'alphabet (⎕A
).la source
Python - 37
i
va de 0 à 104; il est divisé par quatre et ajouté à la valeur ascii pourA
, et le caractère résultant est imprimé.la source
3/4
est 0, tandis que3.0/4.0
est 0,75;range()
génère des entiers.for i in range(104):print(chr(i//4+65))
R,
302827Ancienne version avec 30 octets:
la source
1
au lieu de""
pour spécifier stdout danswrite
, ce qui enregistre un autre octet.C, 59
Je soumets ceci, une réponse non compétitive, simplement parce que je ne vois pas encore de soumission C. Et cela me rend triste. : - /
PLUS TARD: Props à @moala pour avoir fait une version int "/ 4" de ceci, économisant 13 caractères!
la source
J:
1813Je suis encore assez fragile avec J, donc cela pourrait probablement être amélioré
la source
#
) au lieu de la division comme ceci:4#u:65+i.26 1
. En outre,~
permute les arguments d'une fonction, donc si jamais vous vous trouvez en train de le faire(expression) F value
, vous pouvez le remplacer parvalue F~ expression
pour enregistrer un caractère.4#65{26,.\a.
pour 12 octets.Rubis, 23
Tout le crédit à @manatwork - voter pour son commentaire, pas celui-ci. :)
la source
puts [*?A..?Z].map{|i|[i]*4}
ou alorsputs ([*?A..?Z]*4).sort
, les lettres sont ordonnées comme dans l'exemple.puts (?A..?Z).map{|i|[i]*4}
est un caractère plus court. Vous pouvez appelermap
directement sur une plage, vous n'avez donc pas besoin du splat dans ce cas.PowerShell:
3223Code golf:
Procédure pas à pas:
[char[]](
...)
prend un tableau d'objets et les convertit en caractères ASCII.65..90
sont les codes ASCII pour AZ.*4
répète la série 4 fois.|Sort
trie la sortie.Remarque:
Si vous voulez que cela soit écrit dans un fichier, jetez simplement
>
, suivi d'un nom de fichier, à la fin.la source
Haskell, 46
la source
putStr$['A'..'Z']>>=("golf">>).(:"\n")
enregistre 8 bitsBefunge 98-18
Fonctionne en stockant un nombre et en terminant quand il atteint 104. Imprime le caractère correspondant de l'alphabet pour le nombre divisé par 4, suivi d'une nouvelle ligne. Mais si je n'ai pas besoin d'ajouter une nouvelle ligne après chaque lettre, alors c'est 16 caractères:
Peut être réduit si je peux imprimer plus de personnages (c'est-à-dire tous quatre fois) (
76 caractères, fonctionne même dans Befunge 93):Avec newline:
la source
GolfScript:
1715 caractèresla source
Perl 5, 21
la source
C,
46444346:44:44 aussi:
Merci à @marinus, 43 ans:
Dois-je ajouter une prime pour arriver à 42? :)
la source
>>2
par/4
.Java: 56
edit: changé de 'print' en 'println'
la source
The solution must be complete enough to execute. I should be able to invoke an implementation of the language, paste the code from the answer, and get results, without typing any additional code.
Je pense que votre solution viole cette conditionForth, 37
la source
+
.En fait, 6 octets
Essayez-le ici!
Explication
4 octets en minuscules et sans nouvelle ligne:
la source
Code machine MS-DOS 16 bits x86 COM, 25 octets
En hex:
Il s'agit d'un programme MS-DOS .COM complet. Copiez la séquence d'octets dans le fichier avec l'extension .com et exécutez-la à partir de DOSBox
Démontage:
la source
BrainF * ,
7960la source
+++++++++++++[>+>+++++>++<<<-]>--->>[<.<.>.<.>.<.>.<.>+>-]
AWK, 48
Essayons avec AWK ...
Comme suggéré par manatwork, nous pouvons nous débarrasser de 2 caractères
AWK, 46 (modifier)
AWK, 40 (modification du code de MarkReed )
la source
END{for(i=104;i--;s+=0==i%4)printf"%c\n",s+65}
.END
bloc signifie qu'il nécessite un flux d'entrée (même s'il est/dev/null
) pour fonctionner. Est-ce que cela modifie le nombre de caractères? Quoi qu'il en soit,BEGIN{for(;++i<104;){printf"%c\n",i/4+65}}
est 5 caractères plus court.END
exigence du modèle pour un flux d'entrée ...PowerShell, 21
Une approche légèrement différente de celle d'Iszi. Et plus court :-)
la source
C # LINQ
115 octets110 octetsla source
05AB1E, 6 octets
Explication:
Sans nouvelle ligne, 4 octets
Essayez-le en ligne!
la source
Gelée , 5 octets (non concurrentiel?)
Essayez-le en ligne!
Explication:
la source
Perl 6, 32
la source
Canevas , 5 octets
Essayez-le ici!
Explication:Avec
¶
remplacé par\n
lors de l'impression.la source
Kotlin ,
6659 octetsÉconomisez 7 octets en supprimant la boucle.
Essayez-le en ligne!
la source
brainfuck , 48 octets
Essayez-le en ligne!
Imprime en minuscules, séparés par des retours chariot. Utilise le wrapping de cellules 8 bits ainsi que les cellules restantes de l'origine, bien que vous puissiez ajouter un
>
pour contrer ce dernier.la source
Bash: 24 caractères
la source
Dc: 35 caractères
la source
Scala, 42
la source
Julia,
39, 36la source