13 Maret diakui sebagai Hari Permata Nasional , yang merupakan tema tantangan ini. Jadi, diberi bilangan bulat di n
mana n
lebih besar dari 0, buat permata ASCII. Sebagai contoh:
n = 1 n = 2 n = 3
______
____ / \
__ / \ \ /
/ \ \ / \ /
\ / \ / \ /
\/ \/ \/
Bagian bawah didefinisikan sebagai bagian paling bawah dari permata untuk pasangan tertinggi \/
. Sisanya adalah bagian atas. Untuk contoh di atas di mana n = 1
:
Bottom: \ / Top: __
\/ / \
Seperti yang Anda lihat, bagian bawah terbuat dari n + 1
lapisan \/
dengan (1 * lines from the bottom) * 2
ruang di antaranya dengan garis maksimum n
dari bagian bawah permata. Jika kita mengambil permata kedua ( n = 2
), kita dapat melihat bahwa:
____
/ \
\ / 2 (or n) layers from the bottom with 1*2*2 or 4 spaces in between \/
\ / 1 layer from the bottom with 1*1*2 or 2 spaces in between \/
\/ The bottom (0 layers) with 1*0*2 spaces or 0 spaces in between \/
Bagian atas terbuat dari sepasang /\
dengan n*2
ruang di antaranya dengan n*2
garis bawah di atasnya.
Aturan
- Harus dapat menerima bilangan bulat positif bukan nol sebagai input pengguna
- Harus membuat permata dengan spesifikasi yang ditentukan di atas (disajikan kembali di sini):
- Bagian atas terbuat dari sepasang
/\
dengann*2
ruang di antaranya dengann*2
garis bawah di atasnya. - Bagian bawah terbuat dari
n + 1
lapisan\/
dengan(1 * lines from the bottom) * 2
ruang di antaranya dengan garis maksimumn
dari bagian bawah permata.
- Bagian atas terbuat dari sepasang
- Mengejar baris baru setelah permata, atau spasi tambahan di setiap baris diizinkan.
- Tidak ada celah standar yang diizinkan
Kriteria Menang
Bytes terkecil menang!
Jawaban:
Arang , 17 byte
Kode:
Penjelasan:
Sebuah sangat rapi perintah
‖M
, yang juga secara otomatis cermin/
ke dalam\
.Menggunakan pengkodean Arang .
Cobalah online!
sumber
05AB1E ,
2720 byteCobalah online!
Penjelasan
sumber
D„/\„\/‡
menjadiÂ
.Python 2,
1019895 byteCobalah secara Online!
Fungsi anonim yang mengambil bilangan bulat positif dan mengembalikan string
Python 3.6, 92 byte (Terima kasih kepada Ben Frankel)
Saya tidak dapat menemukan juru bahasa online untuk versi ini, tetapi ini sedikit lebih pendek karena f-string di v3.6
sumber
lambda n:f' {"__"*n}\n/{" "*n}\\\n'+'\n'.join(' '*i+'\\'+' '*(n-i)+'/'for i in range(n+1))
. Memanfaatkan f-string.PHP, 123 Bytes
143 Bytes versi pertama
Coba di sini!
sumber
V ,
282726 byte1 byte disimpan berkat @DJMcMayhem dengan menggunakan
>
alih-alihÉ
<esc>
aku s0x1b
Cobalah online!
Hexdump:
Penjelasan
Teratas:
Bawah:
sumber
É<space>
ke>
yang pada akhir makro secara implisit diisi ke>>
>
indentasi satu spasi bukan dengan satu tab?set expandtab
danset shiftwidth=1
Röda , 71 byte
Cobalah online!
sumber
JavaScript (ES6), 80 byte
sumber
Python 3,
107105 BytesMengambil int dari Stdin
sumber
MATL , 34 byte
Cobalah di MATL Online!
Penjelasan
sumber
PowerShell ,
76, 74 byteCatatan: contoh online berisi sedikit pembungkus sebagai demonstrasi. Tempatkan dalam fungsi atau skrip PoSH untuk dijalankan.
Cobalah online!
sumber
' '*$i++
alih - alih' '*($n-$_)
.C, 131 byte
Cobalah online!
sumber
i,j;f(n){for(p(" ");i++<n*2;p("_"));for(p("\n/%*c\n",n*2+1,92);j++<n+1;p("%*c%*c\n",j,92,(n-j)*2+3,47));}
Pyth, 44 Bytes
Cobalah!
penjelasan
Kode ini terdiri dari 3 bagian:
sumber
Python3, 104 byte
Program ini mengambil integer dari STDIN dan mengembalikan permata ke STDOUT.
sumber
Pip , 43 byte
42 byte kode, +1 untuk
-n
bendera.Mengambil input sebagai argumen baris perintah. Cobalah online!
Penjelasan
Buat dua garis pertama secara terpisah, lalu sisa permata dengan operasi peta:
Solusi lain
Juga 42 +1 byte, kali ini dengan
-l
bendera:TIO
sumber
Pyth, 38 byte
sumber
C, 115 byte
Cobalah online!
C, 123 byte
Meskipun tantangan tidak memerlukannya, dengan mengorbankan 8 byte fungsi dapat dibuat kembali (solusi pertama menghemat 8 byte dengan mengandalkan inisialisasi implisit variabel global).
Cobalah online!
sumber
Batch, 152 byte
Tes:
sumber
C #, 187 byte
Saya yakin ada solusi yang lebih kompak di luar sana tetapi ini adalah upaya pertama saya:
Cobalah online ..
sumber
JavaScript (ES6), 93 byte
Demo
Tampilkan cuplikan kode
sumber
dc , 121 byte
Cobalah online!
sumber
Perl 5
10994 + 1 (untuk flag -p) = 95 BytesCobalah secara Online!
Dapat dijalankan seperti ini:
Tidak disatukan
Penjelasan
sumber