Dengan bilangan bulat non-negatif, cetaklah X
yang sebesar itu. X
adalah output untuk input 0
, dan Anda akan menambahkan garis miring sama dengan input di setiap arah untuk memperpanjang X
input yang lebih besar.
Uji Kasus
0
X
1
\ /
X
/ \
2
\ /
\ /
X
/ \
/ \
...
10
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
X
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
Aturan
Anda dapat mencetak output, atau mengembalikan string atau daftar string dari suatu fungsi. Newline tambahan, serta spasi putih interior tambahan yang tidak memengaruhi tampilan, diizinkan.
Ini kode-golf , jadi jawaban tersingkat dalam byte menang!
X
di tengah (bagian dari mengapa saya menambahkannya) tetapi siapa yang tahu: DJawaban:
Kanvas , 3 byte
Coba di sini!
setengah dari ukuran jawaban Arang: D
sumber
Arang , 6 byte
Omong kosong Anda tidak menghentikan saya;)
Cobalah online!
sumber
JavaScript (ES6), 79 byte
Menggunakan fungsi rekursif g yang berjalan melalui kisi-kisi dan membangun karakter keluaran dengan karakter.
Bagaimana?
Kedua variabel x dan y iterate dari 2n ke -1 , di mana n adalah input.
Untuk setiap posisi (x, y) di kisi, kami memilih salah satu karakter ini:
/
\
X
menggunakan tes berikut:
~x
: Falsy if x == -1 : kami telah mencapai akhir baris.x-y
: Falsy if x == y : kami berada di anti-diagonal.x+y-w
: Falsy if x + y == w : kami berada di diagonal.x-n
: Falsy if x == n : karena tes ini hanya dilakukan ketika x == y , ini berarti bahwa kami berada di tengah-tengah grid.dan pohon keputusan berikut:
Demo
Tampilkan cuplikan kode
sumber
MATL , 16 byte
Cobalah online!
Pertimbangkan input
2
sebagai contoh. Tumpukan ditampilkan di sini terbalik, yaitu elemen yang lebih rendah adalah yang paling baru didorong.sumber
C,
108106 byteCobalah online!
(−2 bermain golf berkat MD XF)
Ini mencetak dua karakter (pada awalnya,,
c = 47
yang merupakan garis miring, danc + 45
, yang merupakan garis miring terbalik; kemudian mereka bertukar) dengan lebar bidang dinamis.Lebar bidang dimulai pada
1
dan2n
, dan pada setiap iterasi, lebar pertama bertambah 1, dan yang kedua dikurangi 2.Ketika lebar bidang kedua menjadi 0, itu menghasilkan
'X'
dan baris baru, bukan karakter biasa, dan membalikkan arah kenaikan (i
). Baris baru dicetak untuk semua jalur lain secara terpisah (puts("")
).sumber
a,b,i=1,c;g(n){for(b=2*n,c=47;a+=i;b?puts(""):(i=-i,c=92),b-=2*i)printf("%*c%*c",a,b?c+45*i:88,b,b?c:10);}
Cobalah secara online!shortC , 111 byte
Berdasarkan jawaban C saya . Konversi:
R
->printf(
P
->putchar(
W
->while(
O
->for(
");}
Ini juga menggunakan kode ASCII untuk
\
dan/
.Cobalah online!
sumber
Python 2 , 81 byte
Cobalah online!
sumber
C,
168155150 byte-5 Terima kasih kepada Computronium
Bisa dipastikan golf; Saya melakukannya. Cobalah online!
Tidak Disatukan:
sumber
V , 21 byte
Cobalah online!
Hexdump:
Penjelasan:
Intinya, kita memiliki Sisipkan X, n kali perpanjang garis miring .
Tapi itu tidak sesederhana itu karena kita juga harus menambahkan garis miring pertama kali. Jika garis miring sudah ada, kita bisa menulis garis miring sebagai:
Yang akan menyelamatkan kita 6 byte.
sumber
C #,
157122120 byteVersi tidak disatukan:
sumber
_=d=>new string(' ',d);
(perhatikan tidak perlu untuk kawat gigi di sekitard
). Anda dapat menghapus kurung kurawal di sekitar for loop. Manfaatkan string kata demi kata sehingga Anda tidak perlu melarikan diri dari semua garis miring terbalik. Jika Anda mengaturi=0
maka Anda dapat melakukan++i<a+1
dan menghapusi++
.\n
umpan baris yang sebenarnya akan berfungsi, meskipun saya tidak yakin apakah Anda kemudian dapat menghapus kawat gigi di sekitar for loop, Anda harus mencoba.++i<a+1
untuk++i<=a
EDIT. Anda juga dapat menyimpan 4 byte lagi dengan mengubahFunc
darinew string(' ',d)
ke"".PadLeft(d)
_
.Mathematica, 71 byte
(Sebagian terinspirasi oleh solusi 104-byte Jenny_mathy)
Mengembalikan daftar string.
Penjelasan:
IdentityMatrix[2#+1]
membuat matriks dengan ukuran yang tepat dengan 1s sepanjang diagonal dan 0s di tempat lain. Selanjutnya, kita kalikan dengan"\\"
(backslash kabur), yang membuatnya menjadi matriks dengan backslash sepanjang diagonal dan 0s di tempat lain, karena tentu saja 1 kali backslash adalah backslash dan 0 kali backslash adalah 0. Kami menambahkan ini ke"/"
kali, kebalikannya untuk membuat bentuk X. Kita hampir selesai, kecuali masih ada 0s di mana-mana, dan tengahnya"\\" + "/"
. Kami memperbaiki dua hal ini dengan menggantikan" "
untuk0
dan"X"
untuka_+_
, yang cocok dengan jumlah dari dua hal (seperti_+_
seharusnya, kecuali Mathematica terlalu pintar untuk kebaikan sendiri dan menafsirkan bahwa sebagai 2 kali_
). Akhirnya,""<>#&/@
ubah ini menjadi daftar string.sumber
Java (OpenJDK 8) , 135 byte
Ekspresi Lambda yang mengambil dan menyatukan dan mengembalikan array String
Cobalah online!
Tidak Disatukan:
sumber
T-SQL, 201 byte
Diformat:
Input melalui kolom a dalam tabel bernama t , sesuai pedoman kami .
sumber
Rubi , 66 byte
Fungsi rekursif.
Cobalah online!
Penjelasan
sumber
Jelly ,
2417 byteCobalah online!
Bagaimana itu bekerja
-6 byte berkat @LeakyNun dan -1 byte dengan peningkatan tambahan
sumber
Batch, 201 byte
Mulai dengan membangun garis paling atas, lalu setelah mencetak setiap baris, gerakkan
\
satu spasi ke kanan dan ke/
kiri satu kali, pastikan mereka membuat huruf aX
di tengah.sumber
PHP , 115 byte
Cobalah online!
sumber
Retina , 74 byte
Cobalah online! Penjelasan:
Tempatkan
X
.Mulai dari
X
, bekerja ke atas, tempatkan secara\
diagonal ke kiri setiap kali. Juga tempatkan/
dua ruang lagi setelah/
dari yang terakhir kali.Mulai dari
X
, bekerja ke bawah, tempatkan secara/
diagonal ke kiri setiap kali. Juga tempatkan\
dua ruang lagi setelah/
dari yang terakhir kali.Jumlah spasi di antara kedua diagonal harus ganjil, sehingga ruang terakhir pada setiap baris (kecuali
X
garis asli ) dihapus.sumber
Mathematica, 131 byte
Mathematica, 104 byte
di sini adalah pendekatan lain menggunakan Grid
sumber
APL (Dyalog) , 25 byte
Membutuhkan
⎕IO←0
yang default pada banyak sistem.Cobalah online!
' \/'[
...]
mengindeks string dengan⎕
dapatkan input2×
kalikan dengan dua1+
tambahkan satu⍳
daripada banyak bilangan bulat∘.=⍨
tabel kesetaraan (yaitu matriks identitas; NW-SE diagonal)(
...)
terapkan fungsi tersembunyi berikut ini⊢
argumen+
plus2×
dua kali⌽
argumen cermin horizontal (yaitu NE-SW diagonal)sumber
Bash , 138 byte
Cobalah online!
Sangat panjang, bash heates '\ and /'
Kurang golf
sumber
Python 2 ,
9584 byte-10 byte berkat @FelipeNardiBatista
Cobalah online!
sumber
05AB1E , 21 byte
Cobalah online!
sumber
Perl 5, 110 + 1 = 111 byte
Menggunakan
-n
benderasumber
QBIC , 90 byte
Bagaimana monstrositas ini bekerja, dibiarkan sebagai latihan untuk pembaca ...
Output sampel:
sumber
Visual Basic.Net ,
454450 Bytestidak yakin apakah membuat func untuk
writeline
akan menghemat beberapa byte terima kasih kepada Stephen S untuk menunjukas ...
penghapusan juga diubahinteger
menjadiobject
edit terakhir mengubah yang pertama kembalisumber
as Types
, karena jika sudahOption Strict Off
, VB.NET bertindak seperti bahasa yang diketik secara longgar.function
s ! =for loops
Terima kasih untuk golfOption Strict
mati secara default? Setidaknya ada di Visual Studio05AB1E , 22 byte
Cobalah online!
Penjelasan
Alternatif solusi 22 byte
sumber
Pyke, 14 byte
Coba di sini!
sumber
tcl, 134
demo
Set
n
di baris pertama.Mungkin saya bisa bermain golf lebih menggunakan pendekatan rekursif
sumber
R ,
7572 byteTerinspirasi oleh jawaban ini , menghasilkan matriks implisit dan menulisnya ke stdout; membaca ukuran dari stdin. Itu harus membangun matriks karakter ruang dan menggunakan
sep=''
b / c kalau tidak memiliki masalah spasi.Cobalah online!
sumber