Dalam golf kode ini, Anda perlu mendapatkan nomor terdekat dari yang lain dalam daftar.
Output mungkin nomor terdekat dengan input.
Contoh:
value: (Input) 5 --- [1,2,3] --- 3
Dan, program dapat bekerja dengan angka negatif.
Contoh:
value: (Input) 0 --- [-1,3,5] --- -1
value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers)
ATURAN:
Seperti yang disebutkan sebelumnya, itu harus bekerja dengan angka negatif.
Jika ada dua jawaban (Contoh: 0 - [5, -5]), program memberikan prioritas ke angka terendah. (-5)
Ini kode golf sehingga kode terpendek menang!
code-golf
math
number
array-manipulation
AlexINF
sumber
sumber
Jawaban:
Pyth, 6 byte
Suite uji
Masukkan formulir berikut di STDIN:
Penjelasan:
sumber
Ruby, 34 byte
sumber
->n,a{a.min_by{|x|(n-x).abs}}
Mathematica, 12 byte
FTW internal! Penjelasan Buettner: "Mathematica memiliki bawaan
Nearest
untuk ini, tetapi mengembalikan daftar semua angka yang diikat. Oleh karena itu, kita perlu menyusunnya denganMin
untuk memutuskan hubungan."sumber
Pyth, 8 byte
Penjelasan
Cobalah online!
sumber
JavaScript ES6,
645654 byteCobalah online
Terima kasih kepada @Niel karena telah menghemat dua byte
Cuplikan Tes:
sumber
(i,a)=>a.sort((a,b)=>s(i-a)-s(i-b)||a-b,s=Math.abs)[0]
i=>a=>...
makaf(i)(a)
begitulah Anda menyebutnya.input
dan daftar / array / ... sebagai bilangan bulatJelly,
76 byteCobalah online!
Bagaimana itu bekerja
sumber
MATL , 10 byte
Cobalah online!
sumber
Python 2, 56 byte
Mendapat nomor target terlebih dahulu
a=input()
- ini harus disimpan dalam variabel.Kemudian mengurutkan input dengan fungsi yang
lambda x:abs(a-x)
diterapkan (pikirkanmap(lambda x:abs(a-x), input())
)Kemudian diperlukan nilai minimum jika ada nilai duplikat
sumber
TeaScript, 10 byte
TeaScript tidak mendukung input array sehingga di konsol run:
TeaScript("T#y-la)░", [[1, 2, 3], 1], {}, TEASCRIPT_PROPS)
to runthis.Penjelasan
sumber
R, 42 byte
sumber
Haskell, 38 byte
Contoh penggunaan:
2 # [1,5,3]
->1
.Untuk setiap elemen dalam daftar input,
l
buat pasangan dari perbedaan absolut elemen dengan nomor inpute
dan elemen itu sendiri, misalnyae=2
,l=[1,5,3]
->[(1,1),(3,5),(1,3)]
. Temukan minimum dan buang perbedaannya.sumber
zsh,
7573717067 byteMengharapkan input sebagai argumen baris perintah.
Perhatikan bahwa keempat spasi dalam
echo
seharusnya merupakan tab, tetapi Stack Exchange mengonversi tab menjadi spasi di semua posting.Tidak kompatibel dengan Bash karena
for
sintaksisnya.Terima kasih kepada dev-null untuk 2 byte!
sumber
Perl 6 , 31 byte
Pemakaian:
sumber