Tugasnya sangat sederhana, ketika diberi input, output salah satu spiral berikut:
Input = 1
memberikan spiral dengan huruf yang A
dimulai di sudut kiri atas:
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
memberikan spiral dengan huruf yang A
dimulai di sudut kanan atas:
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
memberikan spiral dengan huruf yang A
dimulai di sudut kanan bawah:
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
memberikan spiral dengan huruf yang A
dimulai di sudut kiri bawah:
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
Seperti yang Anda lihat, spiral selalu searah jarum jam dan bergerak dari luar ke dalam .
Aturannya sederhana:
- Anda perlu menyediakan program lengkap menggunakan STDIN dan STDOUT, atau yang setara terdekat jika tidak memungkinkan.
- Diberikan input (
1, 2, 3, 4
), output spiral terkait. - Ruang putih trailing diperbolehkan
- Ruang putih terkemuka diizinkan bila digunakan secara konsisten
- Anda perlu menggunakan huruf besar untuk output, huruf kecil tidak diperbolehkan.
- Ini adalah kode-golf , jadi program dengan jumlah byte terkecil menang!
Jawaban:
CJam,
454342 byteUji di sini.
Penjelasan
sumber
Japt , 53 byte
58 59 60Disimpan 5 byte berkat produk @ETH
Ini menggunakan perintah rotate yang saya pikir tidak akan berguna
Penjelasan && Tidak Disatukan
Cobalah online
sumber
"FGHIJK EXYZ0L DW781M CV692N BU543O ATSRQP"¸zU ®¬¸} ·
Mathematica 156 byte
Mengubah string awal huruf
"ABCDEFTUVWXGS567YHR498ZIQ3210JPONMLK"
,, menjadi array.Nest
berlakuf
untukn-1
waktu array itu , di mana n adalah nomor input.f
bekerja denganTranspose
-ing array diikuti olehReverse
diterapkan ke setiap baris.g
mengubah array terakhir menjadi string.Contoh
Jika output dapat diberikan sebagai array, fungsi
g
tersebut tidak diperlukan.sumber
MATLAB,
6189 byteSaya akan melihat apakah saya bisa menurunkannya sedikit. Namun tidak yakin.
Ini menciptakan array semua huruf dari A ke Z diikuti oleh 0 hingga 9, lalu mengambil spiral dan menggunakannya untuk mengatur data dalam urutan yang benar. Array kemudian diputar dengan jumlah yang ditentukan pengguna dan kemudian dicetak.
Output secara konsisten menggunakan spasi sebagai diizinkan oleh pertanyaan (pada kenyataannya tanpa biaya byte tambahan, itu bisa melakukan spasi tambahan sebagai gantinya). Berikut ini sebuah contoh:
Ketika saya melihat bahwa spasi diperlukan, kode asli ini (untuk 61) tidak valid karena tidak menambah spasi di antara setiap karakter. Tetapi saya akan menambahkannya di sini untuk referensi.
dan menghasilkan:
sumber
JavaScript ES6, 165
172Rotasi sederhana, mulai dari string hardcoded
Catatan 1 byte disimpan thx @ user81655
Cuplikan uji:
sumber
`<newline>`
lebih pendek satu byte dari`\n`
.Pyth - 60 byte
Hardcodes string dan menggunakan operasi matriks untuk mendapatkan semua opsi.
Test Suite .
sumber
+<G6"
bukannya"ABCDEF
menyimpan 2 byte.Ruby, 173 byte
Tidak Disatukan:
Pemakaian:
sumber
Python, 152 byte
sumber