Masalah
Diberikan bilangan bulat positif di n
manan < 100
Keluarkan pola berlian sebagai berikut:
Memasukkan n=1
/\/\
\/\/
Masukan n=2
:
/\ /\
//\\/\/\//\\
\\//\/\/\\//
\/ \/
Masukan n=3
:
/\ /\
//\\ /\ /\ //\\
///\\\//\\/\/\//\\///\\\
\\\///\\//\/\/\\//\\\///
\\// \/ \/ \\//
\/ \/
Masukan n=4
:
/\ /\
//\\ /\ /\ //\\
///\\\ //\\ /\ /\ //\\ ///\\\
////\\\\///\\\//\\/\/\//\\///\\\////\\\\
\\\\////\\\///\\//\/\/\\//\\\///\\\\////
\\\/// \\// \/ \/ \\// \\\///
\\// \/ \/ \\//
\/ \/
Dan seterusnya.
Aturan
- Program dan fungsi diizinkan.
- Trailing whitespace diizinkan.
- Memimpin spasi putih pada garis tanpa
/
atau\
diizinkan. - Mengejar dan memimpin baris baru diizinkan.
- Kode terpendek dalam byte menang
Jawaban:
SOGL V0.12 , 24 byte
Coba Di Sini!
Penjelasan:
sumber
╬
itu perintah yang sakit.╬
lolArang ,
3027 byteCobalah online!Tautan adalah untuk mengucapkan versi kode. Penjelasan: Primitif gambar Charcoal tidak bisa menggambar berlian, karena gerakan diagonal tetap pada kotak dengan paritas yang sama. Sunting: Solusi baru adalah menggambar satu sisi berlian dan kemudian memutar seluruh kanvas siap untuk menggambar sisi berikutnya, memungkinkan berlian untuk ditarik dalam satu lingkaran. Loop ini kemudian terkandung dalam satu loop untuk menggambar semua berlian bagian dalam untuk setiap berlian. Lingkaran terluar menarik semua berlian yang berdekatan satu sama lain. Akhirnya gambar dicerminkan.
Perhatikan bahwa Arang telah diperpanjang dan byte lain dapat disimpan dengan menggunakan
Increment
.sumber
APL (Dyalog) ,
706966 byteCobalah online!
Asumsikan
⎕IO←0
, yang merupakan standar pada banyak sistem, sehingga program ini diindeks 0.Ini adalah tradfn yang mengambil input melalui STDIN.
Penjelasan
(sedikit ketinggalan jaman)
Perhatikan bahwa
⍺
argumen kiri,⍵
argumen kanan dan⍺⍺
operator kiri.B
adalah fungsi yang membantu dalam mirroring berlian. Dibutuhkan string sebagai argumen kanan dan fungsi mundur sebagai kiri (demikianB
juga operator).Dan sekarang kita pergi ke bagian utama dari program ini.
Ini diperlukan untuk memastikan bahwa semua segitiga yang dibuat untuk setiap elemen dalam rentang
⌽⍳A
memiliki ketinggian yang sama sehingga mereka dapat digabungkan satu sama lain.Sekarang bagian kiri atas pola sudah selesai. Yang tersisa hanyalah membalikkannya secara vertikal dan kemudian secara horizontal.
Dan itu dia! Outputnya adalah matriks karakter dengan
/\
s dan diisi dengan spasi.sumber
05AB1E ,
47434135343332 byteCobalah online!
(-4 byte terima kasih kepada @Emigna yang menyarankan 3 peningkatan)
Penjelasan ini untuk versi sebelumnya, ada beberapa iterasi sejak itu.
sumber
η
alih-alih sufiks karena sama untuk string ini.N£
sama seperti di¨
sini dan€R
sekarangí
.CJam ,
6563 byteCobalah online!
Penjelasan
Dalam penjelasan ini, saya akan merujuk ke nomor input sebagai
n
.sumber
e#
dalam penjelasannya?#
bukan komentar di CJam - sourceforge.net/p/cjam/wiki/Basic%20operators/#number-sign - meskipun itu dalam banyak bahasa lain. Karena CJam adalah bahasa golf, semua perintah satu karakter digunakan untuk fungsionalitas yang sesuai dengan golf. Komentar hanya berguna untuk kode yang tidak dikenali, sehingga menggunakan urutan 2 karakter, sehingga membebaskan urutan satu karakter untuk sesuatu yang lainPython 2 ,
152147143140 byte-1 byte terima kasih kepada musicman523
Cobalah online!
Ini bekerja dengan memotong kolom bagian dalam berlian terbesar untuk membuat yang lebih kecil, gunakan
[0,..,n,n,..,0]
untuk mengontrol jumlah kolom yang akan dihapus.sumber
r=r+
ker+=
Pyth,
3532 byteSuite uji
Selesai untuk melihat bagaimana pendekatan saya dan @ LeakyNun akan berbeda.
sumber
Dyalog APL, 46
sumber
{}
jawaban Anda karena harus dimasukkan.Pyth , 49 byte
Cobalah online!
sumber
V , 38 byte
Cobalah online!
sumber