Tantangan
Memberikan jumlah aritmatika yang valid dengan beberapa angka yang hilang, mengeluarkan ekspresi penuh.
Contoh:
1#3 123
+ 45# => + 456
-------- --------
579 579
Memasukkan
- Format ekspresi dapat berupa array
["1#3", "45#", "579"]
, string"1#3+45#=579"
, atau 3 inputf("1#3","45#","579")
Keluaran
- Sama seperti yang dimasukkan
- Anda tidak perlu menampilkan hasilnya
Catatan
- Angka-angka yang hilang akan direpresentasikan menggunakan
#
atau karakter non-numerik konstan lainnya yang Anda inginkan - Asumsikan hasil tidak akan memiliki nomor yang hilang
- Asumsikan Input / Output terdiri dari 2 istilah dan hasil akhir
- Asumsikan kedua istilah> 0 dan hasil> = 2
- Mungkin ada beberapa solusi. Anda dapat menampilkan siapa saja selama jumlah hasil cocok
Test Case dengan kemungkinan keluaran (format cantik)
#79 879
+ 44# => + 444
-------- --------
1323 1323
5#5 555
+ 3#3 => + 343
-------- --------
898 898
# 1
+ # => + 1
-------- --------
2 2
### 998
+ ### => + 1 PD: there are a lot of possible outputs for this one
-------- --------
999 999
123 123
+ # => + 1
-------- --------
124 124
9 9
+ #6 => + 46
-------- --------
55 55
#123651 1123651
+ #98# => + 7981
------------ -----------
1131632 1131632
Aturan standar kode-golf berlaku
code-golf
arithmetic
integer
Luis felipe De jesus Munoz
sumber
sumber
=
ditukar? mis579=1#3+45#
Jawaban:
Brachylog ,
2216 byteCobalah online!
-6 byte terima kasih kepada @Fatelize
Penjelasan
sumber
{"#"∧Ị∋|}ᵐ²ịᵐ.k+~t
lebih pendek 4 byte. Saya tidak yakin mengapa Anda melakukan sesuatu yang berbelit-belit di peta Anda.Ṣ
alih - alih"#"
yang akan menghemat dua byte lagi.JavaScript (ES6),
7457 byteMengambil input sebagai
(a)(b)(result)
, di mana a dan b adalah string.
untuk digit yang tidak diketahui dan hasilnya adalah integer. Mengembalikan array 2 bilangan bulat.Cobalah online!
Berkomentar
sumber
-~n
tidak bisa adiln+1
dan bagaimanaF=(c,n)=>
digunakan. Sekarang Anda menambahkan penjelasan, itu semua masuk akal.c
adalah input ketiga,n
tidak terdefinisi (dan~undefined
menjadi-1
tidak sepertiundefined+1
). Semua jelas sekarang (dan bukan sesuatu yang saya dapat port ke Jawa sayangnya, yang terutama mengapa saya mencoba memahaminya xD). PS: Sudah diputuskan kemarin, jadi saya baru saja memutus salah satu jawaban anda yang lain (yang saya belum pilih, belum banyak tersedia ..); pnull
, mengubahnya secara manual ke-1
. Namun, Java memiliki batas StackOverflow rekursif (sangat) terbatas, jadi menggunakan metode rekursif dengan keacakan berharap itu akan berakhir benar dalam waktu sekitar 1024 panggilan rekursif tidak akan tetap bekerja di Jawa. Baiklah Saya telah membatalkan saran Anda. Selamat berakhir pekan! :)###+###=999
, peluang Anda adalah 1 banding 1000. Jadi dengan 1024 iterasi, Anda harus berhasil sedikit lebih sering daripada gagal. :)Matlab,
143134132119115 byte-4 byte berkat @Luismendo
Cobalah secara Online
Cukup besar dan sangat bodoh. Itu hanya mengganti semua
#
dengan angka acak sampai menemukan yang benar.sumber
R ,
6751 byteRock sederhana dan sisiknya mengerikan, cukup ambil semua kombinasi jumlah. Gunakan "." untuk digit yang tidak diketahui. Ini tidak akan menemukan jawaban yang sama seperti ujian nomor 4, tetapi akan memberikan sebuah jawaban yang mungkin, yang mengikuti surat aturan seperti yang diberikan.
-16 bytes dengan grepping setelah membentuk output dan mengganti
paste
dengan?
operator.Cobalah online!
sumber
?
... Saya pikir ini adalah yang pertama. Ngomong-ngomong, saya lupa jika saya sudah memberi tahu Anda, tetapi kami mencoba untuk mendapatkan R dinominasikan untuk bahasa september bulan ini - Anda dapat mengambil alih suara jika belum melakukannya.Arang , 32 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Dorong dua string
0
ke daftar kosong yang telah ditentukanu
untuk menjalankan loop sementara.Ulangi sementara jumlah casting nilai-nilai
u
ke integer tidak sama dengan hasil yang diinginkan.Buat array dari dua input dan petakan di atasnya.
Ganti masing
#
- masing dengan digit acak dan berikan kembali hasilnyau
.Cetak hasilnya dengan benar. (Kiri dibenarkan hanya
υ
untuk penghematan 4-byte.)sumber
Jelly , 20 byte
Cobalah online!
sumber
05AB1E (warisan),
2320 byte-3 byte terima kasih kepada @Emigna .
Digit yang tidak dikenal adalah spasi (
). Urutan input harus: hasil yang diharapkan; string terpanjang; string terpendek.
Cobalah online .
Penjelasan:
sumber
Perl 6 ,
8174 byte-7 byte terima kasih kepada nwellnhof!
Cobalah online!
Blok kode anonim yang mengambil input sebagai string yang berisi ekspresi aritmatika misalnya "12 # + 45 # = 579". Mengganti masing
#
- masing dengan kemungkinan permutasi digit, menggantikan=
dengan==
dan temukan hasil valid pertama.Penjelasan:
sumber
S:g[\#]=$a[$++]
bukantrans
untuk 74 byte .S///
sintaks semacam itu! Terima kasih!APL (Dyalog Unicode) , 22 byte
Cobalah online!
sumber
Java 10,
203198193 byteCobalah online.
Penjelasan:
sumber
C (gcc) ,
228213203172170 byte-15 Bytes berkat @ceilingcat . Saya tidak pernah menggunakan
index
sebelumnya.-10 Bytes terima kasih @Logem . Sihir preprosesor
panggilan refactored ke
exit(0)
dengan put sebagai parameter.Cobalah online!
sumber
-DX=c=index(v
, dengan-DX=(c=index(v
, tautan TIO di komentar terakhir saya.C # .NET,
225220196 bytePort of Java 10 saya jawab .
(Saya sangat berkarat di C # .NET golf, jadi bisa jadi golf ..)
-3 byte secara implisit berkat @ user82593 dan tip C # baru ini tambahnya .
-29 byte terima kasih kepada @hvd .
Cobalah online.
Penjelasan:
sumber
using System;
sebagai gantinya, itu lebih pendek darinamespace System{}
.using System.*;
mirip dengan impor di Jawa, tapi itu tidak berhasil. Lupa saya harus menghapus.*
bagian .. Terima kasih untuk -5 byte.int.Parse
(-4), menggunakannew System.Random()
(+7) dan menjatuhkanusing System;
(-13) untuk menyimpan 10 byte lagi. :) Juga, Anda tidak perlu.ToCharArray()
, yang melepas 14 byte lebih.int.Parse
vsSystem.Int32.Parse
... Pada dasarnya sama denganSystem.String
danstring
.. Dan tidak tahu itu mungkin untuk mengulang karakter tanpa.ToCharArray()
. Terima kasih atas -24 byte. : DPython 3 ,
121155152149 byteCobalah online!
+34 Solusi baru dengan regex untuk menghindari fakta bahwa python tidak mendukung angka dengan nol terkemuka.
-3 Terima kasih kepada @Jonathan Frech
Solusi lama tidak berfungsi jika # adalah karakter pertama dalam angka berapa pun (karena eval tidak menerima angka nol di depan) dan karenanya :( tidak valid
Cobalah online!
sumber
PHP, 112 byte
solusi brute force lumpuh
mengambil string sebagai input, berhenti pada solusi pertama. Jalankan sebagai pipa dengan
-nR
atau coba online .sumber
Powershell, 91 byte
Script menemukan semua solusi. Jumlah total iterasi adalah 10 kekuatan jumlah karakter
#
. Kedalaman rekursi sama dengan jumlah karakter#
.Skrip uji:
Powershell, 'Asumsikan kedua istilah> 0' wajib, 110 byte
sumber