Tulis kode sesingkat mungkin yang akan mengembalikan true jika dua nilai integer yang diberikan sama atau jumlah atau perbedaan absolutnya adalah 5.
Contoh uji kasus:
4 1 => True
10 10 => True
1 3 => False
6 2 => False
1 6 => True
-256 -251 => True
6 1 => True
-5 5 => False
Yang terpendek yang bisa saya buat dengan python2 adalah 56 karakter:
x=input();y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
-9, terima kasih @ElPedro. Dibutuhkan input dalam format x, y:
x,y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
code-golf
decision-problem
Vikrant Biswas
sumber
sumber
Jawaban:
Python 2 , 30 byte
Cobalah online!
Satu byte disimpan oleh Arnauld
Tiga byte disimpan oleh alephalpha
sumber
JavaScript (ES6), 28 byte
Mengambil input sebagai0 1
(a)(b)
. Mengembalikan atau .Cobalah online!
sumber
Dyalog APL , 9 byte
Cobalah online!
Dieja:
sumber
kode mesin x86, 39 byte
Majelis
Cobalah online!
sumber
J ,
1211 byte1 byte disimpan berkat Adám
Cobalah online!
Penjelasan
Ini setara dengan:
Ini dapat dibagi menjadi rantai garpu berikut:
Atau, divisualisasikan menggunakan
5!:4<'f'
:Beranotasi:
sumber
e.
e.
adalah=+.5 e.|@-,+
. Mungkin Anda lupa5e.
apakah token yang tidak valid di J?+
sebagai ganti+.
R , 40 byte (atau 34)
Cobalah online!
Untuk pengguna non-R:
-1:1*5
meluas ke[-5, 0, 5]
%in%
Operator mengambil unsur-unsur dari kiri dan pemeriksaan (elemen-bijaksana) jika mereka ada dalam vektor di sebelah kananPort langsung dari solusi @ ArBo memiliki
3534 byte, jadi pilihlah jawaban itu jika Anda suka:sumber
function(x,y)x%in%c(y--1:1*5,5-y)
function(x,y)(x-y)%in%(-1:1*5)
dan menjatuhkannya lebih jauh ke 24 byte dengan menjatuhkan notasi fungsi kescan()
input:diff(scan())%in%(-1:1*5)
Coba online! . Masih sangat banyak metode yang sama.pryr::f
, yang terjadi pada kedua kasus tersebut. Apakah ia dapat mendeteksi argumen dengan baik sepenuhnya sepenuhnya hit atau miss tetapi tampaknya memaku kedua fungsi ini. mis.pryr::f(x%in%c(y--1:1*5,5-y))
Coba online! . Membuat Anda masing-masing menjadi 36 dan 29 byte.Python 2 ,
2931 byteCobalah online!
Karena saya tidak berhasil membaca tugas dengan hati-hati pertama kali, untuk memperbaikinya, saya harus datang dengan pendekatan yang sama sekali berbeda, yang sayangnya tidak ringkas.
sumber
8086 kode mesin,
2220 byteTidak Disatukan:
Masukkan angka dalam AXE dan BX dan kembalikan Nol Bendera (ZF = 1) jika hasilnya benar. Jika diinginkan, Anda juga dapat menentukan kondisi mana yang benar dengan yang berikut ini:
Jika perbedaan antara angka-angka adalah 0, kita tahu mereka sama. Kalau tidak, jika hasilnya negatif, maka negasikan terlebih dahulu lalu periksa 5. Jika masih tidak benar, tambahkan dan periksa 5.
Contoh program uji PC DOS. Unduh di sini ( ESD.COM ).
Output dari program uji:
sumber
Jelly , 7 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2, 38 byte
-2 byte terima kasih kepada @DjMcMayhem
Cobalah online!
sumber
5
s danor
sJava (JDK) , 30 byte
Cobalah online!
sumber
Bahasa Wolfram (Mathematica) , 22 byte
Mengambil input sebagai
[a][b]
.Cobalah online!
sumber
PowerShell ,
484440 byteCobalah online! atau Verifikasi semua Uji Kasus
Mengambil input
$a
dan$b
. Cek jika$b
adalah-in
kelompok ($a-5
,5-$a
5+$a
, atau$a
), yang memeriksa semua kemungkinan kombinasi$a
,$b
dan5
.-4 byte berkat mazzy.
-4 bytes berkat KGlasier.
sumber
($a-$b)
is-$x
:)5
dan$b
sekitar Anda dapat memotong beberapa byte (yaituparam($a,$b)$b-in($a-5),(5-$a),($a+5),$a
) Cobalah di sini$a+5
untuk5+$a
membuatnya dapat dilemparkan dengan tepat ketika mengambil input baris perintah, tetapi sebaliknya hebat. Terima kasih!Pascal (FPC) ,
2670 byteEdit: + variabel input.
Cobalah online!
Cobalah online!
Saya harap jawaban saya sesuai dengan semua aturan kode-golf. Lagipula itu menyenangkan.
sumber
C # (.NET Core) ,
43,48,47, 33 byteEDIT: Mencoba menggunakan% dan tampaknya lupa bagaimana cara%. Terima kasih kepada Arnauld karena menunjukkannya!
EDIT2: AdmBorkBork dengan golf -1 byte mengatur ulang tanda kurung untuk duduk di sebelah kembalinya sehingga tidak ada ruang tambahan yang diperlukan!
EDIT3: Terima kasih kepada dana untuk golf -14 byte untuk pintasan satu baris kembali dan menjelajah fungsi (Ty Perwujudan Ketidaktahuan untuk menghubungkan ke TIO).
C # (.NET Core) , 33 byte
Cobalah online!
sumber
C (gcc) , 33 byte
Cobalah online!
Mencoba pendekatan yang saya tidak melihat orang lain mencoba menggunakan. Ekspresi pengembalian setara dengan
a+b==5||((-6<a-b||a-b<6)&&(a-b)%5==0)
.sumber
Scala, 43 byte
Cobalah online!
sumber
||
ke|
? Saya tahu ini mungkin di Java, C #, Python, atau JavaScript, tetapi tidak yakin tentang Scala.Perl 6 , 24 byte
-1 byte terima kasih kepada Grimy
Cobalah online!
Ini menggunakan Any Junction tetapi secara teknis,
^
bisa bekerja juga.Penjelasan:
sumber
{$^a-$^b==5|0|-5|5-2*$b}
C (gcc) ,
4134 byteCobalah online!
sumber
f
kembalia
? Hanya beberapa Perilaku Tidak Terdefinisi?05AB1E ,
1312 byteCobalah online!
Mengambil input sebagai daftar bilangan bulat, menghemat satu byte. Terima kasih @ Wisław!
Alternatif 12 byte jawaban
Cobalah online!
Yang ini mengambil input pada jalur yang terpisah.
sumber
|
?OI`αª5¢IË~Ā
. Input adalah daftar bilangan bulat.OIÆÄ)5QIËM
adalah 10.05AB1E , 10 byte
Cobalah online!
Mencoba melakukannya menggunakan operasi stack-only, tetapi itu lebih lama.
sumber
0
seperti untuk[5, -5]
OIÆÄ‚5QIËM
) sudah benar[5,-5]
.OsÆÄ‚5åsË~
. Tampaknya hampir identik dengan milikmu. Cobalah online!Ruby , 34 Bytes
Eval Online - Terima Kasih @ ASCII-Only
sumber
.nil?
cek untuk memberikan output dalam format yang diperlukan.->(a,b){[a+5,a-5,5-a,a].index(b).nil?}
, ini lebih panjang dari yang sekarang.Tcl , 53 byte
Cobalah online!
sumber
Japt ,
1413 byteCobalah online!
sumber
Batch, 81 byte
Mengambil input sebagai argumen baris perintah dan menghasilkan 1 pada kesuksesan, tidak ada pada kegagalan. Batch tidak dapat dengan mudah melakukan disjungsi jadi saya menggunakan hukum De Morgan untuk mengubahnya menjadi konjungsi.
sumber
Arang , 18 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Port solusi @ ArBo's Python 2.
sumber
Japt,
1312 byteCobalah atau jalankan semua test case
sumber
[-5,5]
(harus falsey)Gangguan Umum, 48 byte
sumber
Brachylog , 8 byte
Mengambil input sebagai daftar dua angka (gunakan
_
untuk negatif). Cobalah online!Penjelasan
Cukup banyak terjemahan langsung dari spec:
sumber
Retina 0.8.2 , 82 byte
Cobalah online! Tautan termasuk kasus uji. Penjelasan: Dua baris pertama mengubah input menjadi unary. Baris terakhir kemudian memeriksa untuk setiap pertandingan yang diizinkan:
Diputar oleh kolom terakhir yang kita dapatkan:
sumber