Mengingat ukuran S
dan langkah spiral N
, output S*S
spiral "persegi" memiliki N
tanda bintang, dibangun dari jari-jari luar ke dalam searah jarum jam.
Uji kasus (contoh) di bawah ini.
Memasukkan:
4 3
Keluaran:
***
Memasukkan:
4 6
Keluaran:
**** * *
Memasukkan:
4 11
Keluaran:
**** * * * ****
Memasukkan:
6 18
Keluaran:
****** * * * * * * ******
Memasukkan:
6 22
Keluaran:
****** *** * * * * * * * ******
Memasukkan:
6 27
Keluaran:
****** ****** * ** * ** * ** ******
Memasukkan:
1 1
Keluaran:
*
Tidak perlu menangani kasus ketika:
asalkan
N
tanda bintang tidak dapat "cocok" dalam spiralS*S
dimensi yang diberikan .salah satu
N
atauS
nol.
Tantangannya adalah kode-golf, byte tersingkat menang, semua bahasa dapat digunakan.
Output Anda mungkin memiliki banyak spasi / baris baru yang mengikuti (tetapi tidak memimpin) seperti yang Anda inginkan.
S
ukuran (atau setidaknya diameter ) daripada radiusJawaban:
MATL ,
1716 byteCobalah online!
Penjelasan (dengan contoh)
Pertimbangkan input
4
dan11
sebagai contoh.sumber
Stax , 19 byte
Jalankan dan debug itu
Itu dimulai dengan membangun string yang memiliki semua karakter dalam hasil dengan semua tanda bintang kiri selaras. Kemudian dibutuhkan irisan yang semakin besar dari ujung tali, dan "membungkus" mereka di sekitar kotak saat memutar kotak.
Inilah program yang sama, dibongkar, tidak diseret, dan dikomentari.
Jalankan dan debug itu
sumber
Python 2 , 117 byte
Cobalah online!
sumber
APL (Dyalog) , 65 byte
Cobalah online!
Kode untuk matriks spiral diambil dari jawaban saya yang lain .
sumber
N
aneh :)PHP, 118 byte
menyesuaikan dan memasukkan solusi saya untuk Alphabet Spiral .
Jalankan dengan
php -nr '<code>' <S> <N>
atau coba online .sumber
Python 2 , 150 byte
Cobalah online!
sumber
Arang , 34 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Masukan
N
.Panjang dari lengan spiral (tidak termasuk sudut) adalah
S-1
,S-1
,S-1
,S-2
,S-2
,S-3
, ...,3
,2
,2
,1
,1
,1
. Ini dibentuk dengan memulai dengan rentang dari0
hingga tetapi tidak termasuk2S
, mengubah 0 ke 1, membalikkannya, menambahkan 1 ke setiap elemen setelah yang pertama, dan akhirnya integer membagi semua elemen dengan 2. Daftar ini kemudian diulang.Jika ada lebih sedikit bintang yang tersisa untuk menggambar daripada panjang lengan berikutnya, kurangi lengan ke panjang itu.
Gambarkan jumlah bintang yang sesuai.
Kurangi dari jumlah bintang yang tersisa.
Putar arah gambar 90 ° searah jarum jam.
sumber
J,
6056 Bytes-4 Bytes dengan memodifikasi proses build untuk spiral sehingga mengurangkannya dari y ^ 2 tidak diperlukan
Cobalah online!
Penjelasan
segera hadirsekarang.Penjelasan:
Contoh:
sumber
Kotlin ,
361355353334 byte6 byte disimpan berkat Jonathan
2 byte disimpan berubah ke saat
19 byte disimpan beralih ke lambda & melacak tepi luar
Cobalah online!
sumber
==' '
bisa diganti oleh<'*'
. Jugad==0
dengand<1
dand==3
dengand>2
. Ini tampak seperti golf yang cukup mendasar sehingga mungkin ada yang lain juga!Java 10,
284282281263 byteTantangan yang menyenangkan!
Cobalah online di sini .
Terima kasih kepada Kevin Cruijssen karena bermain golf 18 byte.
Versi tidak disatukan:
sumber
var b
ditambahkan sehingga Anda hanya perlu melakukanx>0?i<u:i>l
dany>0?j<u:j>l
masing-masing, bukan masing-masing dua kali.JavaScript (Node.js) ,
167164163 byte,
alih-alih peta (1 byte)Cobalah online!
sumber
return a.join` `.split`,`.join``
..split
, `.join`` tidak menampilkan spiral" dengan baik "(dengan baris baru) jadi saya pikir ini masalah