Tugas Anda: diberi nomor n
, buat tanda '+' yang n
karakternya jauh dari pusatnya. Jika ini membingungkan, periksa kasus uji.
Metode input standar: output harus berupa string atau dicetak. Celah standar berlaku.
Input: 1
Output: + ] 1 away from center `+`.
Input: 2
Output: + ] 2 away from center `+`.
+++ ] 1 away from center `+`.
+
Input: 3
Output: + ] 3 away from center `+`.
+
+++++
+
+
Ini kode-golf , jadi kode terpendek menang!
Jawaban:
Arang , 5 byte
Cobalah online!
sumber
P+
= lintas).Python 2 , 53 byte
Cobalah online!
sumber
JavaScript (ES6),
6765636059 bytex-1
, yang pertama dengan--x
dan yang kedua denganx
."\n"
dengan`[newline]`
.repeat
cara yang mengurangi ukuran. (Dengan menyebutkan terhormat untuk Marie atas usahanya, juga)Cobalah
sumber
"\n"
dengan dua backticks dan baris baru literal di antara merekaa='repeat',v=.....
dan` `[a]
repeat()
tetapi beberapa upaya pertama saya keluar 2 atau 3 byte lebih besar sehingga saya meninggalkannya! Saya akan melihat lagi ketika saya kembali di depan komputer.x=>(v=(` `[r='repeat'](--x)+`+<newline>`)[r](x))+`+`[r](x*2+1)+`<newline>`+v
MATL , 11 byte
Cobalah online!
Penjelasan dengan contoh
Pertimbangkan
n = 3
.sumber
Arang ,
1613 byteCobalah online!
Menggunakan pendekatan yang berbeda dari jawaban Arang lainnya.
Penjelasan
Sekarang sudut kiri atas selesai, akan terlihat seperti ini:
Langkah terakhir adalah kunci untuk program ini, ia menggunakan bagian kiri atas plus untuk menghasilkan sisa plus dengan merefleksikannya ke arah tenggara (kanan dan ke bawah).
sumber
Bahasa Pemrograman Shakespeare ,
749743 byteCobalah online!
Sunting: membuat jawaban itu kompatibel dengan implementasi SPL resmi - saya tidak bisa membuatnya bekerja sebelumnya.
Golf 6 byte karena nomor adegan tidak harus berturut-turut.
Penjelasan :
SPL adalah esolang yang dirancang agar terlihat seperti drama Shakespeare. Kata benda positif memiliki nilai 1 (di sini kucing digunakan) dan kata benda negatif memiliki nilai -1 (tidak ada yang digunakan tetapi babi adalah salah satunya). Kata sifat memodifikasi konstanta dengan mengalikannya dengan 2.
Semuanya sampai titik pertama adalah judul dan tidak masalah.
Karakter adalah variabel integer, masing-masingnya juga memiliki tumpukan tetapi saya tidak perlu menggunakan fitur itu.
Kisah dan adegan digunakan sebagai label goto
Ini hanya berguna jika tepat dua karakter berada di atas panggung pada saat yang sama.
Membaca angka dan membuat Ford mengingatnya.
Seperti yang Anda lihat, Engrish valid di SPL. Ini membuat nilai Puck "berbeda antara kucing dan aku". Tapi apa artinya itu?
cat
adalah kata benda positif, jadi ituPuck = 1 - Ford
.Exeunt hanyalah sejumlah "keluar", dan tanpa argumen berarti bahwa semua orang di panggung keluar.
Itu juga
Page = 1 - Ford
tetapi itu diucapkan oleh aktor yang berbeda sehinggaI
akan salah. Karena ini adalah loop, saya tidak bisa hanya menyalin nilaiPuck
.Cukup mudah sekarang.
Ajax = Puck * Page
."as [adj] as" adalah
==
operator.Jika Ajax == 0 ... "kucing" adalah 1, "kucing besar" adalah 2, "kucing besar besar" adalah 4 dan seterusnya. Setelah mengganti konstanta sederhana kita mendapatkan "jumlah dari jumlah dari jumlah 32 dan 8 dan 2 dan 1" -> "jumlah dari jumlah 40 dan 2 dan 1" -> "jumlah dari 42 dan 1" -> "43", yang merupakan ASCII untuk +.
selain itu hanya "fat fat fat fat fat", jadi Ajax mendapat nilai 32, ASCII untuk sebuah space.
Ini adalah perintah untuk menghasilkan karakter.
Ini adalah konstruksi lingkaran. "Kau jumlah anda dan kucing" increment Page, dan
if(Page != Ford) goto Scene III
. Program lainnya menggunakan komponen yang sama, jadi di sini adalah versi pseudocode yang lebih mudah dibaca:sumber
If not,let us return to Scene III.
" -1; memecahkan dinding keempat: PJelly , 11 byte
Cobalah online!
sumber
Mathematica, 39 byte
CrossMatrix
adalah built-in yang menghasilkan matriks dari bentuk yang diperlukan dengan1
s bukannya+
s dan0
s bukan spasi. Jika kita mengalikan matriks itu dengan"+"
, yang menggantikan1
s dengan+
s sambil membiarkan0
s tidak berubah (jelas ...0*x = 0
dan1*x = x
, kan?). Lalu kami mengganti nol secara manual dengan spasi menggunakan/. 0->" "
. Akhirnya, kami mencetak setiap baris dari matriks denganPrint@@@(...)
.sumber
Print
bisa digunakan seperti itu.C, 69 byte
Tidak terlalu menarik ... Loop di atas alun-alun, mencetak karakter yang sesuai.
sumber
Rubi,
4140 byteCobalah online!
sumber
GNU sed ,
10499 bytes-5 Terima kasih kepada seshoumara
Termasuk +1 untuk
-r
Mengambil input di unary.
Cobalah online!
sumber
s/( *2)2(2*)/\1\n\1\2/
dans/(.*)(\n1*)/&\n\1/
seperti yang ditunjukkan di sini , dengan skor total 99.Lua
113, 90 bytesumber
Python 2 , 52 byte
Cobalah online!
Alternatif 53-byte ( TIO ):
sumber
R, 54 byte
Mencukur 7 byte berkat @Jarko Dubbeldam:
jawaban sebelumnya:
sumber
function(n){a=matrix("",n*2-1,n*2-1);a[n,]="x";a[,n]="x";a}
59 byte!matrix("",y<-n*2-1,y)
a[n,]=a[,n]="x"
berfungsi juga, menghemat beberapa byte lagi.scan()
dan menjadikannya program daripada fungsi:n=scan();a=matrix("",y<-n*2-1,y);a[n,]=a[,n]="+";a
PowerShell , 48 byte
Cobalah online!
Mengambil input
$n
. Mulai dengan membangun serangkaian--$n
ruang, disatukan dengan+
. Itu dikonversi menjadi array menggunakan operator koma, (baru-dikurangi)$n
kali. Array itu disimpan dalam$x
dan dienkapsulasi dalam parens untuk menempatkan salinan pada pipeline.Kami kemudian melakukan bagian tengah, yaitu
+
string dikalikan jumlah yang sesuai kali. Tersisa di saluran pipa. Akhirnya, kami memasang$x
pipa lagi.Itu semua ditinggalkan di jalur pipa saat penyelesaian program, dan implisit
Write-Output
menyisipkan baris baru di antara elemen-elemen.sumber
Perl 5 , 45 byte
44 byte kode +
-p
bendera.Cobalah online!
Beberapa pendekatan yang serupa (tetapi masih berbeda):
48 byte (47+
-p
):50 byte (49+
-n
):sumber
Python 2 ,
60,56 byteCobalah online!
sumber
CJam , 23 byte
Cobalah online!
Penjelasan
Ini terasa agak suboptimal, tetapi idenya adalah untuk menempatkan dua grid berikut:
Yang memberikan hasil yang diinginkan.
sumber
CJam, 17
Cobalah online
Penjelasan:
sumber
Oktaf,
3631 byteTerinspirasi oleh jawaban MATL dari @LuisMendo.
Cobalah online!
Jawaban sebelumnya:
Cobalah online!
sumber
05AB1E ,
151412 byteCobalah online!
Terima kasih kepada Emigna.
sumber
F'+}¹·<×)û.c
untuk 12.Python 2, 65 byte
Cobalah secara Online!
sumber
JS (ES6),
887473 byteMungkin bisa bermain golf lebih banyak.
sumber
"\n"
dengan dua backticks dan baris baru literal di antara merekaJavaScript (ES6), 60 byte
Menghasilkan dua baris baru. Formulasi alternatif, juga 60 byte:
sumber
PowerShell, 48
Tampaknya tidak menjadi lebih pendek dari itu (dan hampir sama dengan pendekatan yang lain):
atau
sumber
V ,
191815 byteGolf 3 byte berkat @ nmjcman101 dengan menggunakan
.
danÒ+
Cobalah online!
sumber
REXX, 81 byte
sumber
PHP, 68 Bytes
83 Bytes
sumber
$m=$argn
dan pra-penambahan$i
alih - alih mengirimnya. Anda juga dapat menyimpan byte dengan memindahkan$m
penugasan dari ujung dan menjatuhkan tanda kurung.for(;$i<$c=-1+2*$m=$argn;)echo"\n".str_pad("+",$c," +"[$m==++$i],2);
while(++$y<2*$n=$argn)echo"\n",str_pad("+",$n*2-1," +"[$y==$n],2);
66 byte (dan simpan satu lagi dengan linebreak fisik)MUMPS, 48
5053bytesumber
Brain-Flak , 216 + 1 = 217 byte
+1 byte dari
-A
benderaCobalah online!
Penjelasan yang akan datang
sumber