Semua kredit untuk Adnan untuk datang dengan tantangan ini.
Tantangan terakhir saya, sebelum saya istirahat .
Tugas
Diberikan bilangan bulat positif n
, jika n
ganjil, ulangi /
berkali-kali; jika n
ada, ulangi \
berkali-kali.
(Serius, testcases akan jauh lebih jelas daripada deskripsi ini, jadi lihat saja testcases.)
Spesifikasi
- Format input / output yang masuk akal.
- Celah standar berlaku.
Testcases
n output
1 /
2 \\
3 ///
4 \\\\
5 /////
6 \\\\\\
f=n=>...
, Anda langsung bisa menyebutnya:(n=>...)(5)
. (Atau jika Anda menggunakan Node.js REPL, maka Anda bisa menggunakanthis._
, yang merupakan singkatan dari hal terakhir yang dimasukkan)Python, 20 byte
sumber
05AB1E / 2sable ,
151198 byte-2 byte terima kasih untuk Leaky Nun
-1 byte terima kasih kepada Emigna
Cobalah online! dalam 05AB1E
atau dalam 2sable
sumber
sè×
😮"/\"
bisa „/ \Perl, 20 byte
Termasuk +1 untuk
-p
Jalankan dengan input pada STDIN:
squigly.pl
sumber
-p
opsi ini? Saya menggunakan;
transliterate karena-p
memiliki implisit;
di akhir kode sehingga saya dapat menyimpan 1 byte lagi. Ini telah bekerja sejak setidaknya perl 5.6 (mungkin selama-p
opsi itu ada);
ditambah oleh-p
itu cukup mengagumkan, dilakukan dengan baik.Retina , 21
Cobalah online (Baris pertama ditambahkan untuk memungkinkan beberapa testcase dijalankan).
sumber
C #, 42 byte
Pilih karakter yang benar, kemudian buat string baru yang terdiri dari karakter yang diulang
n
kali.sumber
PHP, 38 byte
(varian 38 byte)
(varian 38 byte)
(varian 40 byte)
sumber
C, 40 byte
Cobalah di Ideone
sumber
putchar(92-n%2*45)
memiliki panjang yang sama.Jelly , 5 byte
Cobalah online! atau Verifikasi semua testcases.
sumber
Ø^
byte lebih pendek dari⁾/\
.J, 10 byte
Ini adalah kata kerja enam-kereta, yang terdiri dari:
Ini adalah pengait antara
#
dan('\/' {~ 2 | ])
; sebuah kait(f g) y
mengembang key f (g y)
, jadi ini mengembang key # (... y)
, yang, untuk karakter tunggal, menghasilkan daftary
karakter.Bagian kedua adalah kereta 5, yang terdiri dari:
Ini mengevaluasi ke dua garpu:
Garpu bagian dalam
2 | ]
,, adalah modulus dua. Garpu luar, oleh karena itu, adalah:Yang mengambil (
{~
) indeks mod2 (mod2
) dari string/
.Kemudian, gunakan kait dari atas:
Ini menghasilkan apa yang kita inginkan, dan kita selesai.
sumber
Haskell, 25 byte
-1 byte terima kasih kepada Damien dengan
cycle
.sumber
f n=cycle"\\/"!!n<$[1..n]
Mathematica,
343228 byteFungsi anonim. Mengambil integer sebagai input dan mengembalikan daftar karakter sebagai output.
sumber
~Table~#
.<>""
dan mengembalikan daftar karakter.~Do~Infinity
dan dalam 10.2+ juga ...Powershell,
3027 byteMemperbarui:
Beralih ke
param
, terima kasih timmyd .atau sedikit lebih mudah dibaca
Uji:
sumber
param($n)
gantinya$args
, seperti mengikuti selama 27 byte -param($n)('\','/')[$n%2]*$n
Mathematica, 29 byte
Cruelly mengeksploitasi fakta yang
[[1]]
mengembalikan argumen pertama dari suatu fungsi sementara[[0]]
mengembalikan fungsi (kepala) itu sendiri, diterapkan pada fungsi aneh"\\"
yang dinamai yang sedang "dievaluasi" di"/"
.sumber
a[b]
itu hanya ekspresi umum dengan kepalaa
(indeks0
) dan elemenb
(indeks1
), dan fungsi hanyalah jenis ekspresi khusus (sebenarnya, itu akan lebih tepat untuk mengatakan bahwa fungsi tidak ' t ekspresi sama sekali, tetapi hanya aturan untuk mengubah ekspresi yang biasanya berbentukf[x...]
). :)Ruby, 15 byte
Lihat di eval.in: https://eval.in/632030
sumber
Fourier, 27 byte
Cobalah online!
sumber
Brachylog , 15 byte
Cobalah online!
Penjelasan
sumber
CJam , 9 byte
Cobalah online!
Penjelasan
sumber
> <> (Ikan), 30 Bytes
Pertama kali menggunakan bahasa ini, tapi saya pikir saya setidaknya menyelamatkan sedikit ruang dengan menggunakan / sebagai bagian dari output atau mirror untuk mengarahkan aliran. Mungkin masih sangat tidak efisien, saya merasa mungkin bisa mengurangi sedikit lebih sedikit.
Input adalah tumpukan awal, output
stdout
Cobalah online!
sumber
Dyalog APL , 11 byte
Membutuhkan
⎕IO←0
yang default pada banyak sistem.⊢
argumen⍴
membentuk kembali (pengulangan)'\/'⊃⍨
string "/" dipilih oleh2|⊢
pembagian tersisa ketika argumen dibagi duaTryAPL online!
sumber
Java 7,
6865 byte3 byte disimpan berkat @ user902383 dan @SeanBean .
Sama seperti dengan jawaban ini , kode-golf terpendek tampaknya loop dan dicetak. Keduanya bersifat rekursif dan
void c(int i){System.out.print(new String(new char[i]).replace("\0",i%2<1?"\\":"/"));}
tampaknya lebih panjang.
Tidak digabungkan & kode uji:
Coba di sini.
Keluaran:
sumber
x=-1;++x<i
kex=0;x++<i
Anda dapat mengurangi oleh satu byte"\\" : "/"
dengan92:'/'
;)R,
4746 byteDi R, Anda harus melarikan diri dari garis miring terbalik. argumennya
sep
juga harus ditentukan secara lengkap karena muncul setelahnya...
. Dengan demikian, sangat sedikit peluang untuk menyelamatkan karakter :(Berkat bouncyball untuk bermain golf sejauh satu byte.
sumber
n=scan();cat(rep(c('\\','/')[n%%2+1],n),sep='')
T-SQL 50 byte
Tentu saja tidak di
STDIN
sini, jadi mari kita asumsikanINT
variabel hardcode seperti ini:DECLARE @ INT
maka solusinya adalah:sumber
Pip , 8 byte
Mudah. Menggunakan pengindeksan modular untuk memilih karakter dan pengulangan string untuk melipatgandakannya.Cobalah online!
Pertanyaan ini menyajikan perbandingan yang menarik antara Pip, Pyth , dan Jelly , dua yang terakhir masing-masing memiliki skor 5 byte. Ketiga bahasa memiliki output implisit, dengan operator char tunggal untuk pengindeksan modular dan pengulangan string, dan tidak ada persyaratan untuk melarikan diri backslash dalam string. Namun ada dua perbedaan utama:
Tidak satu pun dari fitur-fitur ini yang kemungkinan muncul di Pip 1 (saya tidak suka estetika pembatas tidak seimbang, dan sintaks bebas poin atau operan implisit tampak seperti mereka akan terlalu asing bagi parser ekspresi infiks saya), tapi saya ' Aku baik-baik saja dengan memainkan biola ketiga. Meskipun "keterbacaan" sangat relatif saat bermain golf, saya berpendapat bahwa tiga byte tambahan ini membuat program Pip lebih mudah dipahami dalam sekejap - dan dalam buku saya, itu merupakan tradeoff yang berharga.
1 Meskipun, string karakter tunggal di Pip menggunakan
'
pembatas tunggal , terinspirasi oleh CJam dan dengan mengutip dalam Lisp.sumber
code golf
=golflang design
. Sekarang Anda mungkin berpendapat bahwa prinsip yang sama (lebih pendek selalu lebih baik) berlaku untuk desain bahasa juga. Saya hanya mengatakan bahwa bagi saya, kegunaan dan bahkan estetika adalah pertimbangan.Pyth , 5 byte
Suite uji.
Pengindeksan modular ke dalam string
\/
dan kemudian ulangi.sumber
Perl 6 , 16 byte
Pemakaian:
sumber
Julia, 20 byte
sumber
SpecBAS - 28 byte
ODD
mengembalikan 1 jika angka ganjil, lalu menggunakannya sebagai indeks untuk mencetak karakter yang benar dan beberapa kali. Harus menambahkan 1 sebagai string SpecBAS mulai dari karakter 1.sumber
Java 8, 56 byte
Saya ingin mengucapkan terima kasih kepada @Kevin Cruijssen untuk mahir golf jawaban saya lebih lanjut.
Program Tes Tidak Berkumpul
sumber
Sebenarnya 10 byte
Saran bermain golf diterima. Cobalah online!
Bagaimana itu bekerja
sumber