Tugas Anda sederhana. Poskan cuplikan dalam bahasa apa pun yang jika cuplikan diulangi n kali, akan menghasilkan n dalam desimal, oktal, dan heksadesimal, dalam urutan itu, dipisahkan dalam spasi. n adalah bilangan bulat yang lebih besar dari nol. Tidak ada nol di depan. Jawaban terpendek menang
Contoh
Jika snipetnya ABC
maka test case-nya
ABC
1 1 1
ABCABC
2 2 2
ABCABCABCABCABCABCABCABCABC
9 11 9
ABCABCABCABCABCABCABCABCABCABCABCABC
12 14 C
ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC
18 22 12
1 01 0x1
? (Termasuk awalan)Jawaban:
Japt, 12 byte
Terima kasih kepada @ETHproductions untuk menghemat 2 byte!
Sama seperti jawaban 𝔼𝕊𝕄𝕚𝕟 saya.
sumber
[°TTs8 TsG]¸
Perl, 30 byte
Kembali ke awal baris, penghitung kenaikan dan penghitung cetak menimpa keluaran yang lama.
sumber
JavaScript,
54 53 5147 byteDisimpan 4 byte berkat @ user81655
Saya sebenarnya agak terkejut ini berhasil.
Penjelasan
Cobalah online
sumber
ReferenceError: Can't find variable: d
bahkan pada mode longgar D:d=d?d+1:1
bekerja?C ++,
205179 byte(No trailing newline - saat disalin, baris pertama dari salinan dan baris terakhir dari aslinya harus bersamaan)
Pada dasarnya, ini bekerja dengan membuat urutan variabel statis yang, pada konstruksi, menambah penghitung variabel global. Kemudian, pada penghancuran, jika penghitung bukan 0, ia melakukan semua outputnya dan menetapkan penghitung ke nol.
Untuk mendefinisikan urutan variabel tanpa konflik nama, kami menggunakan makro yang dijelaskan sebagai berikut:
yang agak bergantung pada kebiasaan prosesor string. Kami menggunakan
z
banyak kali untuk mendefinisikan kelas / variabel yang tidak akan saling bertentangan ketika disalin ke baris terpisah. Selain itu, definisi yang harus muncul hanya sekali ditempatkan pada baris pertama, yang dikomentari dalam salinan kode. The#define
dan#include
pernyataan tidak peduli bahwa mereka bisa diulang, sehingga perlu ada penanganan khusus.Kode ini juga menampilkan perilaku tidak terdefinisi dalam pernyataan:
karena tidak ada titik urutan, tetapi c dimodifikasi dan diakses. LLVM 6.0 memberikan peringatan, tetapi mengkompilasinya seperti yang diinginkan - yang
--c
mengevaluasi sebelumnyac
. Satu bisa, dengan mengorbankan dua byte, tambahkan pernyataan--c;
sebelum output dan perubahan--c
dalamprintf
untukc
, yang akan menyingkirkan peringatan.Digantikan
std::cout
denganprintf
penghematan 26 byte berkat saran kakak saya.sumber
CJam,
201918 bytesTerima kasih kepada @ MartinBüttner untuk bermain golf 1 byte!
Cobalah online!
Bagaimana itu bekerja
sumber
𝔼𝕊𝕄𝕚𝕟, 14 karakter / 28 byte
Try it here (Firefox only).
Jawaban pertama! Meskipun mungkin ada cara yang lebih baik untuk menangani ini.
Penjelasan
sumber
MATL , 26 byte
Menggunakan rilis saat ini (6.0.0) . Bekerja pada Oktaf.
Contohnya
Sekali:
Dua kali:
16 kali:
Penjelasan
Jumlah elemen dalam tumpukan digunakan untuk menunjukkan berapa kali kita menjalankan cuplikan
sumber
OCaml, 198 byte
Termasuk baris baru dan mensyaratkan bahwa nama file dimulai dengan tilde (saya menggunakan
~.ml
; Anda dapat menjalankannya denganocaml \~.ml
) karena itu adalah karakter ASCII yang dapat dicetak dengan standar tertinggi. Menyalahgunakan fakta bahwa semua karakter dalam string dapat berubah danSys.argv.(0).[0]
merupakan karakter pertama dalam nama file.Seharusnya hanya berfungsi untuk n = 1 hingga 126, karena kode ASCII
~
adalah 126 dan saya menambahkan satu ke output. Itu bisa dibuat dua byte lebih pendek jika kita hanya ingin n = 1 hingga 125. Setelah itu diulang 126 kali, itu akan berputar kembali ke n = 1.Ini adalah golf pertama saya sehingga komentar atau perbaikan apa pun akan sangat dihargai.
Versi tidak disatukan:
sumber
Sys.argv.(0).[0]
. Saya tidak tahu banyak tentang OCaml.TeaScript ,
2120 byteSaya harus menutupnya secara otomatis
;
Cobalah online
Penjelasan
┼
menjadi++
sumber
Perl, 40 byte
Ada baris terakhir di belakang titik dua.
Memperlakukan segalanya setelah baris pertama sebagai dokumen di sini dan menghitung
z
di dalamnya. Untuk setiap salinan kode selanjutnyaz
ditambahkan. Kami harus menambahkan1
ke hitungan, karena tidak ada untuk cuplikan pertama (yang dieksekusi).Jika output tambahan ke stderr diizinkan, kami dapat menghilangkan 2 tanda kutip tunggal
''
dan bisa turun ke 38 byte. Tanpa''
perl memancarkan peringatan tentang fitur usang.sumber
Mathematica, 76 byte
Catatan yang
n
seharusnya tidak memiliki definisi sebelumnya.Di sini, perilaku
;
digunakan. Cuplikan di atas adalah satuCompoundExpression
, namun, ketika beberapa cuplikan disatukan, masih ada satuCompoundExpression
seperti yang ditunjukkan di bawah ini. (Beberapa pengaturan ulang yang tidak perlu dilakukan.)Jadi seseorang tidak dapat membuat potongan seperti itu berfungsi jika menulis eksplisit
CompoundExpression
. Juga, hampir semua yang Anda suka dapat diletakkan sebelum yang pertama;
sepertiE
,Pi
atauMandelbrotSetPlot[]
,.sumber
bash, 49 byte
File
count.bash
:... tidak ada baris baru.
Menjalankan:
sumber
Python 2, 54 byte
Tidak ada baris baru. Output dalam bentuk
1 01 0x1
.Jika tidak ok, 56 byte
Ketika disisipkan di depan satu sama lain, panjang file bertambah 1 baris untuk setiap kali disisipkan. Kasing dasar dimulai dengan 2 garis sehingga Anda harus mengurangi 1 dari panjang garis. Komputasi ditekan oleh komentar.
sumber
"%d %o %x"%(n,n,n)
, itu keren sekali. Saya tidak tahu Anda bisa melakukan itu. Jika ternyata awalan meninggalkan tidak ok saya harus meminjam itu.Python 2.x 140 byte
Ini tidak dimaksudkan untuk menjadi solusi yang terlalu kompetitif, tetapi metode yang saya temukan lucu, karena satu hal, upaya pada kode golf multithreaded .
Menyimpan penghitung, menghasilkan utas untuk setiap penghitungan dan jika penghitung tidak berubah ketika penghitung penghitung mati setelah menyelesaikan masalah matematika yang mahal (alih-alih penghitung waktu untuk menyimpan byte), string yang diformat dicetak.
Beberapa contoh konfigurasi dan outputnya:
dan lima belas salinan salinan:
sumber
thread.start_new_thread
Bisakah python memikirkan nama metode yang lebih buruk untuk kode golf?Perl 5 , 31 byte
Menggunakan pendekatan yang sama dengan jawaban saya untuk 'Saya gandakan sumbernya, Anda gandakan hasilnya!' .
Cobalah online!
sumber
Ruby, 35 byte
Setiap penambahan cuplikan
$.
(yang dimulai dengan 0 jika tidak ada file yang telah dibaca), tetapi hanya keluaran terakhir apa saja.*-~-0
mengevaluasi menjadi*1
, artinya mencetak string sekali, tetapi dengan penggabungannya menjadi*-~-01
, ekspresi oktal mengevaluasi ke 0. Karena$><<
tidak menyertakan baris tambahan, mencetak string kosong berarti tidak mencetak apa pun.sumber