Lihatlah string berikut. Perhatikan polanya?
ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL AIR MANI BAZYXWV N EO DP CQ BAZYXWVUTSR
Seperti yang mungkin diperhatikan oleh beberapa orang, pada dasarnya ini adalah spiral dari alfabet, di mana jarak antara baris / kolom secara bertahap meningkat sebesar 1 spasi / baris baru.
Definisi yang ketat
- Mari kita memiliki penghitung c , yang awalnya 0.
- Kami menulis pertama c + 1 huruf alfabet dari kiri ke kanan:
A
. Kemudian, dari atas ke bawah berikutnya (c + 1) (c + 2) / 2 huruf (add
B
):AB
.Dari kiri ke kanan, berikutnya (c + 1) (c + 2) / 2 (tambahkan
C
):AB C
Dan dari bawah ke atas, huruf c + 1 berikutnya (tambahkan
D
):AB DC
Mencapai akhir siklus. Karenanya, mari selisih c (yang menjadi 1). Kemudian, itu dimulai kembali dari langkah pertama, satu-satunya perbedaan adalah bahwa alih-alih menggunakan huruf c + 1 pertama dari alfabet, kita menggunakan huruf c + 1 berikutnya , mulai dari elemen terakhir dari siklus ini (
D
dalam hal ini, jadi kita lanjutkan denganEFG...
). KetikaZ
tercapai, ia kembali dari siklusA
.
Tugas
Diberikan integer N (yang positif untuk pengindeksan 1 atau non-negatif untuk pengindeksan 0), menghasilkan N pertama siklus dari spiral.
Aturan
Anda bisa menggunakan huruf kecil atau alfabet huruf besar, tetapi pilihan Anda harus konsisten (hanya gunakan salah satunya, pencampuran tidak diperbolehkan).
Anda dapat mengambil input dan memberikan output melalui salah satu metode standar , dalam bahasa pemrograman apa pun , sambil mencatat bahwa celah ini dilarang secara default.
Format output yang dapat diterima: string multiline, daftar string yang mewakili garis, daftar yang berisi banyak daftar karakter, masing-masing mewakili satu baris, atau apa pun yang Anda anggap cocok. Jika Anda tidak memilih format pertama, alangkah baiknya jika Anda menyertakan versi kode yang cukup cetak.
Ini adalah kode-golf , jadi kode terpendek dalam byte (dalam setiap bahasa) yang memenuhi persyaratan menang!
Uji kasus
Bilangan bulat input akan dipisahkan oleh keluaran terkait melalui baris baru, dan tes akan dipisahkan menggunakan tanda hubung. Perhatikan bahwa ini adalah 1-diindeks.
1 AB DC -------- 2 ABEF DC G MH LKJI -------- 3 ABEFNOP DC GQ MHR LKJI S DT CU BAZYXWV ------- 4 ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL AIR MANI BAZYXWV N EO DP CQ BAZYXWVUTSR ------- 5 ABEFNOPEFGHFGHIJ DC GQIK MHRJL LKJI SKM DTLN CUMO BAZYXWV NP EOQ DPR CQS BAZYXWVUTSR T RU QV PW LEMBU NMLKJIHGFEDCBAZY ------ 6 ABEFNOPEFGHFGHIJSTUVWX DC GQIKY MHRJLZ LKJI SKMA DTLNB CUMOC BAZYXWV NPD EOQE DPRF CQSG BAZYXWVUTSR TH RUI QVJ PWK OXL NMLKJIHGFEDCBAZY M SN RO QP PQ ATAU NMLKJIHGFEDCBAZYXWVUTS