Banyak orang tahu apa itu mesin kebenaran dalam pemrograman. Tapi sudah saatnya kita membuat segalanya menjadi takik. Memperkenalkan, mesin kebenaran yang diperluas! Mesin kebenaran yang diperluas membutuhkan dua hal sebagai input, integer n
dan string nonempty s
. Ini menghasilkan s
n
kali dengan spasi tambahan trailing opsional. Namun, jika n
sama dengan 0
, Anda harus menampilkan s
sampai program dihentikan secara manual yaitu tidak boleh dihentikan.
Juga, jika n
angka negatif, maka string perlu dibalik. Misalnya dengan s=hello
dan n=-1
, hasilnya adalah olleh
.
Metode input standar, segala jenis output selama dapat menangani yang tak terbatas. Jika Anda memiliki jawaban yang tidak menangani infinite, jangan ragu untuk mempostingnya jika menarik atau dalam bahasa yang tidak dapat menangani output infinite.
Uji Kasus
n, s, output
5, "hello world", "hello worldhello worldhello worldhello worldhello world"
0, "PPCG", "PPCGPPCGPPCGPPCG..."
-2, "truThY", "YhTurtYhTurt"
2000, "o", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"
Ini kode-golf , jadi kode terpendek menang!
Ini adalah pos Sandbox asli. Pengeditan telah dilakukan untuk itu. Terima kasih buka @ComradeSparklePony untuk membuat ide tantangan ini
sumber
-n
bukanabs n
.PHP> = 7.1, 67 Bytes
Versi dengan
list(,$x,$y)
alih - alih[,$x,$y]
Cobalah online!sumber
MATL , 37 byte
Cobalah online!
Penjelasan:
sumber
Python 3, 71 byte
Cobalah online!
Variabel
k
menjamin loop selalu dijalankan setidaknya sekali. Ini berarti bahwa jikan=0
, makan
akan menjadi negatif pada iterasi loop berikutnya, sehingga loop akan terus dijalankan selamanya.sumber
Matlab, 87 byte
Upaya pertama saya di kode-golf! Semua saran untuk bermain golf dipersilakan.
sumber
05AB1E ,
171614 byteCobalah online!
Penjelasan:
Disimpan 2 byte berkat @EriktheOutgolfer
sumber
'-å
dengan0‹
dan0Q
dengan_
.Cubix , 41
Empat puluh empat45byteMengambil input sebagai
<N> <String>
Cobalah online!
Kubus:
Tonton terus
Masih ada sejumlah no-ops dalam kode yang saya mungkin bisa mendapatkan beberapa byte lagi, tetapi ingin mendapatkan ini sebelum saya memecahkannya.
Prosedur dasarnya adalah
I
dapatkan counter dari inputA
ambil sisa input sebagai karakter;p?
hapus spasi, angkat nomornya dan ujilahpsuqB$)
jika penghitung negatif, balikkan tumpukan. Ini melibatkan penanganan nomor input dan penanda EOI (-1). Tambahkan penghitung.;p;ouqu
jika penghitungnya nol, lepaskan penghitung dan penanda EOI dan mulailah loop keluaran yang abadi.(
jika positif penurunan counter<<q?/o()u
loop output. Ini akan menampilkan setiap karakter tumpukan hingga penanda EOI (-1) tercapai.... _ ... ?wq!
pada ujung penanda EOI, berkeliling kubus dan refleksikan kembali ke?
, ganti jalur, letakkan penanda EOI ke bawah dan uji penghitung.@
jika nol, berhentilah?u(
jika positif berbalik dan menurun, akhirnya dia akan mencapai awal lingkaran? ... <)
jika negatif, pergi sekitar kubus ke sisi lain, redirect ke awal loop sambil melewati kenaikan./)<
jika kenaikan negatif dan melanjutkan ke loop keluaransumber
JavaScript (ES6), 79 byte
Potongan:
sumber
!n&&
untuk mengulanginya tanpa batas. Namun, apakah ini akan menabrak StackOverflow pada akhirnya?it should never terminate.
JavaScript (ES6),
98949183 byte-4, -5 byte berkat Arjun
-3 byte terima kasih kepada Rick Hitchcock
Memulai berbeda dari jawaban Java , tetapi dengan cepat menjadi sangat mirip setelah bermain golf. Peringatan tidak terbatas, tetapi jika Anda ingin terlihat bagus, beralihlah ke
console.log
.l=alert;
dan menulisalert
memiliki panjang yang sama, tetapi jika Anda beralih keconsole.log
itu lebih pendek untuk mendefinisikannya kembali.sumber
while(!n)l(s)
bukannyaif(!n)for(;;)l(s)
.[...s].reverse()
bukannyas.split''.reverse()
l(s.repeat(Math.abs(n)))
bukannyafor
loop pada akhirnya.QBIC , 36 byte
Lot ging di sini, dan QBIC / QBasic tidak memiliki sintaks untuk menangani kondisi seperti itu secara elegan.
Penjelasan:
sumber
Java (OpenJDK 8) , 137 byte
Cobalah online!
sumber
str , 30 byte
Cobalah online!
Penjelasan
sumber
C (gcc) ,
115112109107104 byteCobalah online!
C (gcc) , 115 byte (134 dengan
#include<string.h>
di depan)Cobalah online!
sumber
Retina , 49 byte
Format input: mengambil string, diikuti oleh baris baru, diikuti oleh nomor.
Cobalah online!
Penjelasan:
The
/¶-/&
berjalan baris ini hanya jika nomor tersebut negatif.V
adalah tahap mundur, dan terbalik^.+
, yang cocok dengan string (.
cocok dengan setiap karakter selain dari baris baru).The
/¶0/&
berjalan baris ini hanya jika nomor tersebut adalah 0.//+>
dimulai loop tak terbatas, yang mencetak string kerja setelah setiap iterasi.G0
mengambil string dan membuang nomornya; ia melakukan ini tanpa batas, mencetak setiap waktu.Ini menandai kode yang akan menghasilkan string; program mengevaluasi string sebagai kode Retina setelahnya.
(.+)¶-*(\d+)
cocok dengan seluruh string dan menempatkan string dalam menangkap grup 1 dan nomor dalam menangkap grup 2..-$2+>K
`$1
menghasilkan kode Retina untuk dijalankan:.
mematikan output implisit (jika tidak, string akan dicetak n + 1 kali),-$2+
menetapkan pengulangan lingkaran yang berulang untuk {menangkap grup 2} kali. Minus di awal mengubah angka menjadi angka negatif, karena ini menonaktifkan fungsi konvergensi dalam loop, yang akan menghentikannya setelah iterasi pertama.>
atur loop ini untuk mencetak setelah setiap iterasi. Sisa kode hanya untuk mencetak string.sumber
Perl 6 , 44 byte
Cobalah online!
Blok kode anonim yang mengambil angka dan string dan mengembalikan daftar (mungkin tak terbatas)
sumber