Zadanie
Twoim zadaniem jest wydrukowanie tego dokładnego tekstu:
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
Okular
- Możesz to zrobić małymi literami zamiast wielkimi literami.
- Dozwolone są końcowe znaki nowej linii na końcu trójkąta.
- Końcowe spacje po każdej linii są dozwolone.
- Musisz wydrukować do STDOUT zamiast wypisywać tablicę ciągów.
Punktacja
To jest golf golfowy . Program z najmniejszą liczbą wygranych bajtów.
code-golf
ascii-art
kolmogorov-complexity
Leaky Nun
źródło
źródło
mod
funkcję. Może sam go stworzę, jeśli będę miał czas.Odpowiedzi:
Vim, 29 bajtów
Gdzie
↵
reprezentuje klawisz Return, klawisz♥
Escape iβ
klawisz Backspace.źródło
␛
zamiast♥
. I␈
zamiastβ
. Po to zostały stworzone te znaki Unicode. utf8icons.com/subsets/control-picturesPython 2, 65 bajtów
źródło
Galaretka , 10 bajtów
Wypróbuj online!
Jak to działa
źródło
ṁ
jest świetny !! [czeka, aby powiedzieć gratulacje za 100H
jest o połowę iḤ
jest odwrotnością ( unhalve )./2
albo*2
, więc jest to „Przepolawiac” lub „Double”. Właśnie dlatego byłem zdezorientowany.27Ḷ²IRØAṁY
51Rm2RØAṁY
VBA Excel (80 bajtów, 1742 bajtów)
Excel, 1742 bajtów
Zainspirowany twórczą odpowiedzią ugorena udało mi się znaleźć formułę programu Excel, aby utworzyć wzór, jak pokazano w PO.
Wklej tę formułę do komórki A1, a następnie przeciągnij w całym zakresie A1: A26.
Długość formuły wynosi 67 bajtów, ale musisz ją powtórzyć 26 razy, więc jest równa 67 * 26 = 1742 bajtów. Oto wynik:
Excel VBA, 80 bajtów
Teraz możliwe jest zintegrowanie programu Excel z VBA, aby zautomatyzować proces i zaoszczędzić wiele bajtów, ponieważ VBA jest wbudowany w większość aplikacji Microsoft Office, w tym Excel. Napisz i uruchom następujący kod w oknie natychmiastowym (użyj kombinacji klawiszy CTRL+, Gaby wyświetlić go w edytorze Visual Basic):
Program działa, drukując powyższą formułę Excel do zakresu A1: A26. Niestety zarówno Excel, jak i VBA nie mają wbudowanego alfabetu.
źródło
Haskell, 67 bajtów
Prosta rekurencja na całej długości
i
linii. Na każdym krokui
pobierane są kolejne znaki z nieskończonej liczby powtórzeń alfabetu.źródło
Mathematica, 90 bajtów
Funkcja anonimowa. Nie pobiera danych wejściowych i zwraca ciąg wyjściowy. Sugestie dotyczące gry w golfa mile widziane. Przykład tego, co
Internal`PartitionRagged
:źródło
C, 79 bajtów
Moja pierwsza odpowiedź w C \ o /
Sugestie dotyczące gry w golfa są mile widziane.
źródło
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 bajtów
Wypróbuj online!
Wyjaśnienie
Główny predykat:
Predykat 1: służy do generowania zmiennych ciągów o nieparzystych długościach.
źródło
Z
ponieważ26
jest wolna od kwadratów.Pyth , 12 bajtów
Wypróbuj online!
źródło
JavaScript (ES6), 77
82 88EcmaScript 6 wymagał jedynie zapisania 1 bajtu przy użyciu literału ciągu szablonu dla znaku nowej linii.
Mniej golfa
Test
źródło
Perl,
424139 bajtówTylko kod:
Oczywista krótsza wersja niestety powoduje wewnętrzny problem z perlem (użycie zwolnionej wartości w iteracji):
źródło
JavaScript, 129 bajtów
źródło
[...'ABCDEFGHIJKLMNOPQRSTUVWXYZ']
zamiast'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split``
.Pyke, 14 bajtów
Wypróbuj tutaj!
źródło
Idź, 133 bajty
źródło
MATLAB,
112 109 95 7977 bajtówBędzie to również działać z Octave , możesz spróbować online tutaj .
Więc po kilku poważnych zmianach zaoszczędziłem jeszcze
1432 bajtów. Ten będzie coraz bardziej podobny do długości, jakiej spodziewałbym się po MATLAB. Zostawiłem starą wersję poniżej, ponieważ jest ona zasadniczo inna.Orginalna wersja:
Wow, ten okazał się dłuższy, niż się spodziewałem. Zobaczę, czy nie mogę zrzucić kilku bajtów.
Wersja bez golfa do wyjaśnienia:
Podziękowanie
źródło
XPath 3.0 (i XQuery 3.0), 84 bajtów
Wyjaśnienie:
(1 to 26)!(65 to 90)
jest alfabetem 26 razy(0 to 25)!(subsequence(XX, start, len),10)
pobiera 26 podciągów tego, po których następuje nowa liniasubsequence(X, .*.+1, 2*.+1)
przyjmuje kolejne podsekwencje z pozycją początkową i długością: (1, 1), (2, 3), (5, 5), (10, 9) itd.codepoints-to-string()
zamienia znaki kodowe Unicode w znakiźródło
Rubinowy, 46 bajtów
Zobacz na ideone: http://ideone.com/3hGLB0
źródło
05AB1E (alternatywnie) 15 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
R,
120115111 bajtówNie golfowany:
Zasadniczo
b
jest wektorem liczb nieparzystych między1
i51
, co daje długość każdej linii. Oczywiściesum
funkcja sumuje liczby tego wektora i daje indeksy początkowe i końcowe.-5 bajtów dzięki @plannapus!
-4 bajty dzięki @plannapus!
źródło
a
raz, nie musisz go definiować, co oznacza, że możesz ogolić jeszcze kilka bajtów: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="")
działa.b=seq
część z korpusem głównym, więc jest jeszcze mniej czytelna!R,
81 73 6563 bajtówProsty
for
podejście do pętli. Powtórz alfabet 26 razy i przejdź przez przesuwany zakres indeksu, który jest obliczany za pomocą(i^2-2*i+2):i^2
.źródło
Łuska , 10 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Partia, 123 bajty
źródło
05AB1E ,
1817 bajtówWyjaśnienie
Wypróbuj online!
źródło
Rexx,
7472 bajtyNie golfowany:
źródło
TSQL, 129 bajtów
USE MASTER na początku skryptu ma zapewnić, że zapytanie zostanie uruchomione w głównej bazie danych, która jest domyślna dla wielu użytkowników (nie licząc bajtów).
Gra w golfa:
Nie golfowany:
Skrzypce
Fiddle dla starszej wersji przy użyciu ścieżki xml
źródło
PowerShell, 68 bajtów
Sekcja przed pierwszym średnikiem tworzy ciąg zawierający 26 kopii wielkich liter alfabetu. Następna sekcja wprowadza łamanie linii na indeks każdego numeru kwadratu (działa wstecz, więc nie muszę brać pod uwagę przesunięcia). Wreszcie,
$a
na końcu po prostu umieszcza zmienną łańcuchową w ekwiwalencie programu PowerShellSTDOUT
.źródło
Dyalog APL, 18 bajtów
↑2{⍺↓⍵⍴⎕a}/×⍨0,⍳26
źródło
C, 60 bajtów
źródło
puts
bierze tylko jeden argument. (Niektóre niezdefiniowane zachowanie jest normalnie dozwolone w codegolf, ale jest to trochę za daleko poza zwykłe pasy)C ++, 111 bajtów
Najpierw spróbuj jednego z nich. Używa int "c", aby zapisać, którą literę musi wydrukować w danym momencie. Gdy „c” minie 90 („Z”), resetuje się do 65 („A”). Drukuje piramidę za pomocą pętli.
źródło
if(c<92)c=65
aby zdjąć jeden bajt, aint a()
zamiast tego możesz to zrobićvoid a()
, ale nie jestem pewien, czy to zadziała bez zwrotu. Poza tym myślę, że musisz uwzględnić#include <iostream>
w swojej liczbie bajtów.if(c>90)c=65
, ale dziękuję za sugestię, to dobry pomysł. Ponadto, chyba to uwzględnię, dzięki.PHP,
7669 bajtówźródło