Zadanie jest bardzo proste: po podaniu danych wyjściowych wypuść jedną z następujących spiral:
Input = 1
daje spiralę z literą A
zaczynającą się w lewym górnym rogu:
A B C D E F
T U V W X G
S 5 6 7 Y H
R 4 9 8 Z I
Q 3 2 1 0 J
P O N M L K
Input = 2
daje spiralę z literą A
rozpoczynającą się w prawym górnym rogu:
P Q R S T A
O 3 4 5 U B
N 2 9 6 V C
M 1 8 7 W D
L 0 Z Y X E
K J I H G F
Input = 3
daje spiralę z literą A
rozpoczynającą się w prawym dolnym rogu:
K L M N O P
J 0 1 2 3 Q
I Z 8 9 4 R
H Y 7 6 5 S
G X W V U T
F E D C B A
Input = 4
daje spiralę z literą A
rozpoczynającą się w lewym dolnym rogu:
F G H I J K
E X Y Z 0 L
D W 7 8 1 M
C V 6 9 2 N
B U 5 4 3 O
A T S R Q P
Jak widać, spirala zawsze porusza się zgodnie z ruchem wskazówek zegara i przesuwa się z zewnątrz do wewnątrz .
Zasady są proste:
- Musisz podać pełny program przy użyciu STDIN i STDOUT lub najbliższego odpowiednika, jeśli nie jest to możliwe.
- Biorąc pod uwagę input (
1, 2, 3, 4
), wypisz odpowiednią spiralę. - Końcowe białe znaki są dozwolone
- Wiodące białe znaki są dozwolone, jeśli są używane konsekwentnie
- Jako wynik należy użyć dużej litery, małe litery nie są dozwolone.
- To jest golf golfowy , więc wygrywa program z najmniejszą liczbą bajtów!
Odpowiedzi:
CJam,
454342 bajtówSprawdź to tutaj.
Wyjaśnienie
źródło
Japt , 53 bajty
58 59 60Zaoszczędź 5 bajtów dzięki @ETHproductions
Wykorzystuje to polecenie obrotu, które nigdy nie myślałem, że będzie tak przydatne
Wyjaśnienie i nieugolfowany
Wypróbuj online
źródło
"FGHIJK EXYZ0L DW781M CV692N BU543O ATSRQP"¸zU ®¬¸} ·
Mathematica 156 bajtów
Konwertuje początkowy ciąg liter
"ABCDEFTUVWXGS567YHR498ZIQ3210JPONMLK"
na tablicę.Nest
stosuje sięf
don-1
czasów tablic , gdzie n jest liczbą wejściową.f
działa przezTranspose
-tablicę, a następnieReverse
stosowane do każdego wiersza.g
konwertuje końcową tablicę na ciąg.Przykład
Gdyby dane wyjściowe można było podać w postaci tablicy, funkcja
g
byłaby niepotrzebna.źródło
MATLAB,
6189 bajtówZobaczę, czy uda mi się to trochę zdjąć. Nie jestem pewien.
Spowoduje to utworzenie tablicy wszystkich liter od A do Z, po których następują cyfry od 0 do 9, a następnie pobiera spiralę i używa jej do uporządkowania danych we właściwej kolejności. Tablica jest następnie obracana o wartość określoną przez użytkownika, a następnie drukowana.
Dane wyjściowe konsekwentnie wykorzystują wiodące spacje, jak dopuszcza to pytanie (w rzeczywistości bez dodatkowych kosztów bajtowych, zamiast tego mogłyby robić końcowe spacje). Oto przykład:
Jak zauważyłem, że wymagane są spacje, ten oryginalny kod (dla 61) jest nieprawidłowy, ponieważ nie dodaje spacji między każdym znakiem. Ale dodam go tutaj w celach informacyjnych.
i produkuje:
źródło
JavaScript ES6, 165
172Prosta rotacja, zaczynająca się od zakodowanego ciągu
Uwaga 1 bajt zapisany thx @ user81655
Fragment testowy:
źródło
`<newline>`
jeden bajt krótszy niż`\n`
.Pyth - 60 bajtów
Zaszyfruj ciąg i używa operacji macierzowych, aby uzyskać wszystkie opcje.
Pakiet testowy .
źródło
+<G6"
zamiast"ABCDEF
zapisuje 2 bajty.Rubinowy, 173 bajtów
Nie golfowany:
Stosowanie:
źródło
Python, 152 bajty
źródło