Diberikan dua bilangan bulat, A dan B, output A jika AB (A minus B) berada di AB (A ke B), jika tidak output B.
"A minus B" adalah pengurangan standar.
"A to B" adalah rentang bilangan bulat mulai dari A dan berakhir di B, termasuk A dan B. Misalnya:
1 to 4: 1, 2, 3, 4
-2 to 5: -2, -1, 0, 1, 2, 3, 4, 5
3 to -1: 3, 2, 1, 0, -1
7 to 7: 7
Kode terpendek dalam byte menang.
Uji Kasus
A B Output
1 4 4
-2 5 5
3 -1 -1
7 7 7
90 30 90
90 -30 -30
-90 30 30
-90 -30 -90
-2 -2 -2
-2 -1 -2
-2 0 -2
-2 1 1
-2 2 2
-1 -2 -2
-1 -1 -1
-1 0 -1
-1 1 1
-1 2 2
0 -2 -2
0 -1 -1
0 0 0
0 1 1
0 2 2
1 -2 -2
1 -1 -1
1 0 1
1 1 1
1 2 2
2 -2 -2
2 -1 -1
2 0 2
2 1 2
2 2 2
sumber
PHP, 58 Bytes
sumber
$b
tugas tidak memerlukan tanda kurung.JavaScript (ES6), 24 byte
Uji kasus
sumber
Python 2, 37 byte
Diminta sebagai
f(B, A)
.sumber
Python2,
555251 byteCobalah online!
Menangani setiap test case yang disebutkan OP (pada saat memposting ini), seperti yang disarankan oleh TIO.
sumber
JavaScript ES6,
4037 byteDijelaskan:
Disimpan 3 byte berkat Arnauld.
sumber
Mathematica, 16 byte
Fungsi murni mengambil dua argumen dalam urutan yang berlawanan sebagai OP (misalnya,
If[2#^2>1##,##]&[B,A]
). Port jawaban Python xnor .sumber
R,
493028 byteMenggunakan logika xnor untuk menentukan apakah ab ada dalam: b.
sumber
pryr::f(match(a-b,a:b,b))
Clojure,
7141 byte-30 byte dengan menggunakan
<=
danmin
/max
bukannyarange
s.Cek apakah
(a - b)
dalam kisaran daria
keb
, mengirim pengembalian sesuai.sumber
PHP (7.1), 55 byte
menggunakan sintaksis susunan array baru :
Jalankan dengan
-r
, berikan angka sebagai argumen baris perintah.sumber
PowerShell ,
373532 byteCobalah online!
Terjemahan harfiah masalah ke dalam PowerShell menggunakan
-notin
operator. Disimpan tiga byte dengan menggunakan banyak penugasan dan enkapsulasi. Ini berfungsi karena-
memiliki prioritas operator yang lebih tinggi daripada-notin
, dan( )
bagian dari kode dieksekusi terlebih dahulu dan dikembalikan sebagai array@($a,$b)
. Namun, karena ini$a,$b
bukan$b,$a
, kita perlu menggunakan-notin
untuk membalik / menjatuhkan hasil keluaran.sumber
Batch, 107 byte
sumber
Pyth - 9 byte
Berharap untuk menggunakan input yang lebih implisit ... :(
Cobalah online di sini .
sumber
Rosda , 30 byte
Cobalah online!
Ini menggunakan rumus yang digunakan dalam jawaban xnor.
Solusi lain (37 byte):
Cobalah online!
sumber
> <> , 21 byte
Memanfaatkan trik @ xnor . Kami gunakan
-v B A
untuk mengisi ulang tumpukan. (-v A B
adalah +1 byte).Cobalah online!
Penjelasan
sumber
Ruby ,
2722 byteCobalah online!
Tidak ada yang inovatif di sini. Matematika sederhana di baliknya:
dapat ditulis sebagai
yaitu: jika A-2B memiliki tanda yang sama dengan B, kita berada dalam jangkauan.
sumber
SpecBAS - 38 btes
IIF
adalah inline-IF-THEN-ELSE, untuk mencetak nilai yang benar.sumber
Haskell, 21 byte
Cobalah online!
Dapat dibaca
Penjelasan
Menggunakan rumus @ xnor untuk memeriksa apakah ab berada dalam kisaran. Tidak ada yang istimewa selain itu.
sumber
Haskell, 58 byte
Baru-baru ini saya jatuh cinta dengan panah lagi. Sayangnya mereka mengharuskan kami untuk bekerja dengan tuple alih-alih fungsi biner. Dan tentu saja Haskell tidak memiliki
range
fungsi simetris .sumber
PHP 7 - 45 Bytes
sumber
Oktaf, 55bytes
Ini mungkin dapat dioptimalkan lebih lanjut. Saya akan menambahkan penjelasan nanti.
sumber
Nim, 60 byte
Cobalah online!
Sejauh standar jawabannya, tidak ada trik besar dalam hal ini.
sumber
Cepat -
383022 byteDisimpan 8 byte berkat @Matt
Cobalah di IBM Swift Sandbox online!
Atau 21 byte:
(berkat formula @xnor ) dan menyimpan 8 byte berkat @Matt
Swift bukan bahasa terbaik untuk bermain golf (sangat kaku), jadi jika Anda melihat peluang bermain golf lainnya, saya akan benar-benar mengedit jawabannya.
sumber
Java 7,
846058 byteJava 8, 37 byte
Penjelasan:
Kode uji: Coba di sini.
sumber
Ti-Basic (TI-84 Plus CE),
26 2423 byteTI-Basic adalah bahasa tokenized; semua token yang digunakan adalah token satu byte .
Prompt
meminta Anda untuk dua nomor.A-B≥A and A-B≤B
memeriksa apakah AB berada di antara A dan B (inklusif); ini mengembalikan 1 jika benar dan nol jika salah, yang disimpanAns
.Karena kita mengembalikan A jika AB berada di antara A dan B, kita mengalikan A dengan Ans, yang akan menjadi A jika kita seharusnya mengembalikan A, dan 0 sebaliknya.
Selanjutnya, kita tambahkan
Bnot(Ans
. Jika Ans adalah 1 (benar), kitanot(
mendapatkannya dan mendapatkan 0, maka jumlah kita adalah A. Jika Ans adalah 0 (palsu), kitanot(
mendapat 1, yang kita kalikan dengan B dan tambahkan ke 0 untuk mendapatkan B.Evaluasi terakhir dalam TI-Basic dikembalikan secara implisit.
-2 byte terima kasih kepada Scott Milner
sumber
Y
dan hanya menggunakanAns
di baris keempat.Pyt , 32 byte
Mengambil A dan B dari stdin sebagai dua input terpisah
Penjelasan:
AABB -> ABBA -> ABAB -> ABABB -> ABBBA -> ABBBAA -> ABABAB -> ABABBA -> ABABC -> ABCBA -> ABCAB -> ABC [A, ..., B] -> ABD -> ABDD - > ADDB -> ADBD -> AD {B * (1-D)} -> {B * (1-D)} AD -> {B * (1-D)} + {A * D}
di mana: C = BA dan D = C∈ [A, ..., B] (1 jika benar, 0 jika salah)
sumber
Ohm , 10 byte (CP437)
Mungkin ada cara golf untuk melakukan ini, tetapi sifat Ruby yang diketik ketat membuat ini sulit.
sumber
Perl 6 ,
31 2924 byteCobalah
Cobalah
Cobalah
sumber