Aufgabe
Ihre Aufgabe ist es, genau diesen Text auszudrucken:
A
BCD
EFGHI
JKLMNOP
QRSTUVWXY
ZABCDEFGHIJ
KLMNOPQRSTUVW
XYZABCDEFGHIJKL
MNOPQRSTUVWXYZABC
DEFGHIJKLMNOPQRSTUV
WXYZABCDEFGHIJKLMNOPQ
RSTUVWXYZABCDEFGHIJKLMN
OPQRSTUVWXYZABCDEFGHIJKLM
NOPQRSTUVWXYZABCDEFGHIJKLMN
OPQRSTUVWXYZABCDEFGHIJKLMNOPQ
RSTUVWXYZABCDEFGHIJKLMNOPQRSTUV
WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC
DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL
MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW
XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ
KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY
ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP
QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI
JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD
EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA
BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ
Technische Daten
- Sie können dies in Kleinbuchstaben anstatt in Großbuchstaben tun.
- Das Nachziehen von Zeilenumbrüchen am Ende des Dreiecks ist zulässig.
- Nachstehende Leerzeichen nach jeder Zeile sind zulässig.
- Sie müssen auf STDOUT drucken, anstatt ein Array von Zeichenfolgen auszugeben.
Wertung
Das ist Code-Golf . Programm mit der niedrigsten Bytezahl gewinnt.
code-golf
ascii-art
kolmogorov-complexity
Undichte Nonne
quelle
quelle
mod
Funktion berechnet werden kann. Kann man sich machen, wenn ich Zeit habe.Antworten:
Vim, 29 Bytes
Dabei
↵
steht die Eingabetaste,♥
die Escape-Taste undβ
die Rücktaste.quelle
␛
anstelle von verwenden sollten♥
. Und␈
stattβ
. Dafür wurden diese Unicode-Zeichen entwickelt. utf8icons.com/subsets/control-picturesPython 2, 65 Bytes
quelle
Gelee , 10 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
ṁ
super !! [Warten auf Glückwunsch für 100.000 Wiederholungen]H
ist halbiert undḤ
ist umgekehrt (nicht halbiert )./2
oder*2
, also ist es "Halbieren" oder "Verdoppeln". Deshalb war ich verwirrt.27Ḷ²IRØAṁY
51Rm2RØAṁY
VBA Excel (80 Byte, 1742 Byte)
Excel, 1742 Bytes
Inspiriert von der kreativen Antwort des UGOREN , fand ich eine Excel-Formel, um das Muster wie im OP zu erstellen.
Fügen Sie diese Formel in Zelle A1 ein und ziehen Sie sie über den gesamten Bereich A1: A26.
Die Länge der Formel beträgt 67 Byte, Sie müssen sie jedoch 26 Mal replizieren, sodass sie 67 * 26 = 1742 Byte entspricht. Hier ist die Ausgabe:
Excel VBA, 80 Bytes
Jetzt ist es möglich, Excel in VBA zu integrieren, um den Prozess zu automatisieren und viele Bytes zu sparen, da VBA in die meisten Microsoft Office-Anwendungen, einschließlich Excel, integriert ist. Schreiben Sie den folgenden Code und führen Sie ihn im Direktfenster aus (verwenden Sie die Kombinationstasten CTRL+ G, um ihn im Visual Basic-Editor anzuzeigen):
Das Programm druckt die obige Excel-Formel in den Bereich A1: A26. Leider haben sowohl Excel als auch VBA kein eingebautes Alphabet.
quelle
Haskell, 67 Bytes
Eine einfache Rekursion über die Länge
i
der Linie. In jedem Schritt werden die nächsteni
Zeichen aus einer unendlichen Wiederholung des Alphabets entnommen.quelle
Mathematica, 90 Bytes
Anonyme Funktion. Nimmt keine Eingabe an und gibt eine Zeichenfolge als Ausgabe zurück. Golfvorschläge sind willkommen. Ein Beispiel dafür, was
Internal`PartitionRagged
macht:quelle
C 79 Bytes
Meine erste Antwort in C \ o /
Golfvorschläge sind mehr als willkommen.
quelle
i;main(j){while(i<676)printf("\n%c"+(j*j^i++||!j++),i%26+65);}
i;main(j){for(;j<27;j*j^++i||puts("",j++))putchar(i%26+65);}
Brachylog , 37 Bytes
Probieren Sie es online!
Erläuterung
Hauptprädikat:
Prädikat 1: Wird verwendet, um variable Zeichenfolgen ungerader Länge zu generieren.
quelle
Z
, weil sie26
quadratfrei ist.Pyth , 12 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 77
82 88EcmaScript 6 benötigt nur 1 Byte, um ein Template-String-Literal für Newline zu verwenden.
Weniger golfen
Prüfung
quelle
Perl,
424139 BytesNur der Code:
Eine offensichtlich kürzere Version löst leider ein internes Perl-Problem aus (Verwendung des freigegebenen Werts in der Iteration):
quelle
JavaScript, 129 Bytes
quelle
[...'ABCDEFGHIJKLMNOPQRSTUVWXYZ']
statt'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split``
.Pyke, 14 Bytes
Probieren Sie es hier aus!
quelle
Los, 133 Bytes
quelle
MATLAB,
112 109 95 7977 BytesDies funktioniert auch mit Octave . Sie können es hier online versuchen .
Nach einigen großen Änderungen habe ich weitere
1432 Bytes gespeichert . Dieser wird viel länger, als ich es von MATLAB erwartet hätte. Ich habe die alte Version unten gelassen, da sie wesentlich anders ist.Originalfassung:
Wow, das war länger als ich dachte. Ich werde sehen, ob ich ein paar Bytes nicht wegwerfen kann.
Eine ungolfed Version, um zu erklären:
Danksagung
quelle
XPath 3.0 (und XQuery 3.0), 84 Byte
Erläuterung:
(1 to 26)!(65 to 90)
ist das Alphabet 26 Mal(0 to 25)!(subsequence(XX, start, len),10)
dauert 26 Untersequenzen davon, jeweils gefolgt von Newlinesubsequence(X, .*.+1, 2*.+1)
Nimmt aufeinanderfolgende Teilfolgen mit Startposition und Länge auf: (1, 1), (2, 3), (5, 5), (10, 9) usw.codepoints-to-string()
verwandelt Unicode-Codepunkte in Zeichenquelle
Ruby, 46 Bytes
Sehen Sie es auf ideone: http://ideone.com/3hGLB0
quelle
05AB1E (alternativ) 15 Byte
Probieren Sie es online!
Erläuterung:
quelle
R,
120115111 BytesUngolfed:
Grundsätzlich
b
ist der Vektor der ungeraden Zahlen zwischen1
und und51
gibt damit die Länge jeder Zeile an. Offensichtlich summiert diesum
Funktion die Zahlen dieses Vektors und gibt den Anfangs- und den Endindex an.-5 Bytes dank @plannapus!
-4 Bytes dank @plannapus!
quelle
a
einmal verwendest, musst du es eigentlich nicht definieren, was bedeutet, dass du ein paar Bytes mehr rasieren kannst:b=seq(1,51,2);v=c();for(i in 1:26){v=c(v,c(rep(LETTERS,26)[(sum(b[1:i-1])+1):sum(b[1:i])],"\n"))};cat(v,sep="")
funktioniert.b=seq
Teil auch in den Hauptteil integriert, damit es noch weniger lesbar ist!R
81 73 6563 BytesEin einfacher
for
Loop-Ansatz. Wiederholen Sie das Alphabet 26 Mal und durchlaufen Sie einen gleitenden Indexbereich, der mit berechnet wird(i^2-2*i+2):i^2
.quelle
Schale , 10 Bytes
Probieren Sie es online!
Erläuterung
quelle
Batch, 123 Bytes
quelle
05AB1E ,
1817 BytesErläuterung
Probieren Sie es online!
quelle
Rexx,
7472 BytesUngolfed:
quelle
TSQL, 129 Bytes
USE MASTER in the beginning of the script is to ensure that the query is run in the master database which is default for many users(not counting bytes for that).
Golfed:
Ungolfed:
Fiddle
Fiddle for older version using xml path
quelle
PowerShell, 68 bytes
The section before the first semicolon produces a string containing 26 copies of the uppercase alphabet. The next section injects linebreaks at the index of each square number (working backward so I don't have to account for the shifting). Finally, the
$a
at the end just shoves that string variable onto PowerShell's equivalent ofSTDOUT
.quelle
Dyalog APL, 18 bytes
↑2{⍺↓⍵⍴⎕a}/×⍨0,⍳26
quelle
C, 60 bytes
quelle
puts
only takes one argument. (Some undefined behaviour is permitted in codegolf normally but this is a bit too far outside the usual lanes)C++, 111 bytes
First try at one of these. Uses an int "c" to record which letter it needs to print at any given time. Once "c" passes 90 ('Z') it gets reset to 65 ('A'). Prints the pyramid using for loops.
quelle
if(c<92)c=65
to take one byte off, and you might also be able to doint a()
instead ofvoid a()
, but I'm not positive if that works without the return. Other than that, I think you need to include#include <iostream>
in your byte count.if(c>90)c=65
, but thanks for the suggestion, it's a good idea. Also, I guess I'll include it, thanks.PHP,
7669 bytesquelle