Beachten Sie, dass dies nicht dasselbe ist wie das viermalige Drucken des Alphabets .
Diese Aufgabe besteht darin, ein Programm zu schreiben, mit dem vier Exemplare jedes Buchstabens des englischen Alphabets (ein Buchstabe pro Zeile) in der Standardausgabe generiert werden:
A
A
A
A
B
B
B
B
etc.
Die Ausgabe sollte nach jedem Buchstaben neue Zeilen enthalten.
Großbuchstaben ohne zusätzliche Ausgabe werden bevorzugt. Kleinbuchstaben und / oder zusätzliche Leerzeichen sind jedoch zulässig, wenn die Lösung durch Groß- / Kleinschreibung verlängert wird.
EDITIERT ZUM HINZUFÜGEN: Die Lösung muss vollständig genug sein, um ausgeführt zu werden. Ich sollte in der Lage sein, eine Implementierung der Sprache aufzurufen, den Code aus der Antwort einzufügen und Ergebnisse zu erhalten, ohne zusätzlichen Code eingeben zu müssen.
Die obige Frage nach der Vollständigkeit wurde im Zusammenhang mit einer C-Lösung gestellt. Sicherlich muss es eine ständige Regel oder Konvention darüber auf einer Code-Golf-Site geben? Wenn ja, gebe ich mich gerne den Community-Richtlinien hin. Aber das ist meine Einstellung:
Im Hinblick auf die C speziell, müssen Sie umfassen (und zählen) , um die
main(){
...}
um den Code, da es sonst nicht kompilieren. Warnungen, weil es keine gibt,#include <stdio.h>
sind in Ordnung, solange der Code noch kompiliert wird. Im Allgemeinen erfordert eine kompilierte Sprache eine kompilierbare Einheit.Ein nackter Ausdruck, der die gewünschten Ergebnisse liefert, ist akzeptabel, wenn es eine Möglichkeit gibt, den Ausdruck direkt auszuführen. Zum Beispiel, wenn die Sprache eine REPL hat. So können Sie Haskell ohne einreichen,
main=
solange es tatsächlich so funktioniert, wie es zB an derghci
Eingabeaufforderung geschrieben steht. Aber da dies bedeutet, dass Sielet
Ihre Erklärungen abgeben müssen, kann es ein Gewinn sein, sich an dasrunhaskell
Format zu halten.Ebenso sollten
awk
Skripte in BlöckenBEGIN
(oderEND
mit der Annahme, dass stdin an/dev/null
Blöcke angehängt ist ) sein, da wir keine Eingaben verarbeiten.
etc.
quelle
Antworten:
APL (5)
Matrixformat (
⍪
) von 4-Replikation (4/
) des Alphabets (⎕A
).quelle
Python - 37
i
geht von 0 auf 104; Es wird durch vier geteilt und zum ASCII-Wert für addiertA
, und das resultierende Zeichen wird gedruckt.quelle
3/4
ist 0, während3.0/4.0
0,75 ist;range()
Erzeugt ganze Zahlen.for i in range(104):print(chr(i//4+65))
R
302827Frühere Version mit 30 Bytes:
quelle
1
Anstelle von können Sie auch""
stdout in angebenwrite
, wodurch ein weiteres Byte gespeichert wird.C 59
Ich übermittle dies, eine nicht wettbewerbsfähige lange Antwort, einfach weil ich noch keine C-Übermittlung sehe. Und das macht mich traurig. : - /
SPÄTER: Wenden Sie sich an @moala, um eine int-Version von "/ 4" zu erstellen und 13 Zeichen zu sparen!
quelle
J:
1813Ich bin immer noch ziemlich wackelig mit J, also könnte dies wahrscheinlich verbessert werden
quelle
#
wie so) statt Teilung:4#u:65+i.26 1
. Außerdem~
tauscht gegen Argumente der Funktion, so dass , wenn Sie sich jemals zu tun(expression) F value
, können Sie ersetzen , dass mitvalue F~ expression
einem Zeichen zu speichern.4#65{26,.\a.
für 12 Bytes.Rubin, 23
Alles Lob an @manatwork - stimme seinem Kommentar zu, nicht diesem. :)
quelle
puts [*?A..?Z].map{|i|[i]*4}
oderputs ([*?A..?Z]*4).sort
, damit die Buchstaben wie im Beispiel geordnet werden.puts (?A..?Z).map{|i|[i]*4}
ist ein Zeichen kürzer. Sie könnenmap
eine Range direkt anrufen , sodass Sie in diesem Fall keinen Splat benötigen.PowerShell:
3223Golf Code:
Exemplarische Vorgehensweise:
[char[]](
...)
nimmt ein Array von Objekten und konvertiert sie in ASCII-Zeichen.65..90
sind die ASCII-Codes für AZ.*4
Wiederholt die Serie 4 mal.|Sort
sortiert die Ausgabe.Hinweis:
Wenn Sie möchten, dass dies in eine Datei geschrieben wird
>
, geben Sie am Ende einfach einen Dateinamen ein.quelle
Haskell, 46
quelle
putStr$['A'..'Z']>>=("golf">>).(:"\n")
speichert 8 BitsBefunge 98 - 18
Speichert eine Zahl und endet bei 104. Gibt das entsprechende Zeichen des Alphabets für die durch 4 geteilte Zahl aus, gefolgt von einer neuen Zeile. Aber wenn ich nicht nach jedem Buchstaben eine neue Zeile einfügen muss, dann sind es 16 Zeichen:
Kann reduziert werden, wenn ich mehr Zeichen drucken kann (dh alle vier Mal) (
76 Zeichen, funktioniert sogar in Befunge 93):Mit newline:
quelle
GolfScript:
1715 Zeichenquelle
Perl 5, 21
quelle
C
46444346:44:44 auch:
Dank an @marinus, 43:
Sollte ich ein Kopfgeld für die Erreichung von 42 hinzufügen? :)
quelle
>>2
durch/4
.Java: 56
edit: geändert von 'print' zu 'println'
quelle
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.
Ich denke, Ihre Lösung verletzt diese BedingungViertens, 37
quelle
+
.Eigentlich 6 Bytes
Probieren Sie es hier aus!
Erläuterung
4 Bytes mit Kleinbuchstaben und ohne Zeilenumbruch:
quelle
16-Bit-x86-Computercode MS-DOS COM, 25 Byte
In hex:
Dies ist ein vollständiges MS-DOS-COM-Programm. Kopieren Sie die Bytesequenz in die Datei mit der Erweiterung .com und führen Sie sie von DOSBox aus
Demontage:
quelle
Brainf * ,
7960quelle
+++++++++++++[>+>+++++>++<<<-]>--->>[<.<.>.<.>.<.>.<.>+>-]
AWK, 48
Lass es uns mit AWK versuchen ...
Wie von manatwork vorgeschlagen, können wir 2 Zeichen loswerden
AWK, 46 (Bearbeiten)
AWK, 40 (Bearbeiten des MarkReed -Codes)
quelle
END{for(i=104;i--;s+=0==i%4)printf"%c\n",s+65}
.END
Block einfügen , ist ein Eingabestream erforderlich (auch wenn dies der Fall ist/dev/null
). Ändert das die Zeichenanzahl? Wie auch immer,BEGIN{for(;++i<104;){printf"%c\n",i/4+65}}
ist 5 Zeichen kürzer.END
Anforderung des Musters für einen Eingabestream ...PowerShell, 21
Eine etwas andere Herangehensweise an Iszi's. Und kürzer :-)
quelle
C # LINQ
115 Bytes110 Bytesquelle
05AB1E, 6 Bytes
Erläuterung:
Ohne Zeilenumbruch 4 Bytes
Probieren Sie es online!
quelle
Gelee , 5 Bytes (nicht konkurrierend?)
Probieren Sie es online!
Erläuterung:
quelle
Perl 6, 32
quelle
Canvas , 5 Bytes
Probieren Sie es hier aus!
Erläuterung:Mit
¶
mit ersetzt\n
beim Drucken.quelle
Kotlin ,
6659 BytesSpeichern Sie das Entfernen von 7 Bytes für die Schleife.
Probieren Sie es online!
quelle
Brainfuck , 48 Bytes
Probieren Sie es online!
Druckt in Kleinbuchstaben, getrennt durch Wagenrücklauf. Verwendet das Umbrechen von 8-Bit-Zellen sowie von Zellen links vom Ursprung, obwohl Sie a voranstellen können
>
, um dem letzteren entgegenzuwirken.quelle
Bash: 24 Zeichen
quelle
DC: 35 Zeichen
quelle
Scala, 42
quelle
Julia,
39, 36quelle