Tulis fungsi atau program bernama yang menerima bilangan bulat tunggal N dan mencetak (ke STDOUT) atau mengembalikan (sebagai string) bilah N pertama dari spiral di bawah ini, dimulai dengan bilah vertikal di tengah dan berputar ke luar searah jarum jam.
_______________
/ _____________ \
/ / ___________ \ \
/ / / _________ \ \ \
/ / / / _______ \ \ \ \
/ / / / / _____ \ \ \ \ \
/ / / / / / ___ \ \ \ \ \ \
/ / / / / / / _ \ \ \ \ \ \ \
/ / / / / / / / \ \ \ \ \ \ \ \
| | | | | | | | | | | | | | | |
\ \ \ \ \ \ \___/ / / / / / / /
\ \ \ \ \ \_____/ / / / / / /
\ \ \ \ \_______/ / / / / /
\ \ \ \_________/ / / / /
\ \ \___________/ / / /
\ \_____________/ / /
\_______________/ /
Anda dapat berasumsi bahwa 0 <N <= 278. Output Anda tidak dapat berisi spasi kosong apa pun di depan karakter spiral paling kiri. Anda dapat mencetak satu baris trailing tunggal.
Untuk input 10, output yang benar adalah
_
/ \
| |
\___/
Untuk input 2, output yang benar adalah
/
|
Untuk input 20, output yang benar adalah
___
/ _ \
/ / \ \
| | | |
\___/ /
Output yang akan salah karena karakter paling kiri didahului oleh whitespace adalah
___
/ _ \
/ / \ \
| | | |
\___/ /
Pemenangnya adalah pengiriman terpendek, dalam byte.
|
) hanyalah karakter terdekat yang dapat mewakili pertemuan a/
dan\
.Jawaban:
CJam - 156/147
Cobalah online
Ini bekerja dengan input dari 1 hingga 378 inklusif (100 lebih dari yang dibutuhkan)
Menggunakan kode CJam terbaru yang dilakukan (tersedia untuk umum) tetapi belum pernah dirilis pada saat tantangan ini diposting, solusinya dapat disingkat menjadi 147 karakter:
Penjelasan:
Program iteratif membangun semua spiral sebagai array dari [karakter xy] dimulai dengan
[0 0 '|]
, mendapatkan spiral yang diminta, menyesuaikan koordinat sehingga minimum x dan y adalah 0, menciptakan matriks ruang (dengan jumlah baris dan 50 kolom yang benar) ) kemudian mengatur karakter dari spiral dan bergabung dengan baris dengan baris baru.sumber
Python 2,
290289Mungkin sangat buruk, tetapi saya mencoba: D
Outputnya berisi spasi tambahan, tapi itu tidak dilarang dalam spesifikasi.
Pembaruan: disimpan 1 byte dengan perubahan
\n
ke;
.sumber
JavaScript (ES6) 257
288 321Sunting Langkah digabung.
Edit kode Golf mengutak-atik untuk memotong char lagi
Bangun output secara iteratif ke dalam r array, catat posisi x dan y saat ini dan arah saat ini. Ketika posisi x atau y adalah <0 seluruh r array disesuaikan kembali.
Variabel utama:
Tidak disatukan
Uji di Firefox / konsol FireBug (atau JSFiddle thx @Rainbolt)
Keluaran
sumber
Pyth,
166165Saya baru saja menerjemahkan jawaban Python saya ke Pyth, dengan keterampilan Pyth saya yang tidak terlalu bagus. Muntah yang dihasilkan di bawah.
sumber