Apakah ini genap atau ganjil?

65

Catatan: Belum ada tantangan uji paritas vanili (Ada C / C ++ satu tetapi yang melarang kemampuan untuk menggunakan bahasa selain C / C ++, dan yang non-vanilla sebagian besar ditutup juga), Jadi saya memposting satu.

Diberikan bilangan bulat positif, hasilkan paritasnya (yaitu jika bilangannya ganjil atau genap) dalam nilai kebenaran / kepalsuan. Anda dapat memilih apakah hasil yang benar sesuai dengan input ganjil atau genap.


Contohnya

Menganggap Benar / Salah sebagai genap dan ganjil (Ini tidak wajib, Anda dapat menggunakan nilai-nilai Kebenaran / Kebohongan lainnya untuk masing-masing), secara responsif:

(Input):(Output)
1:False
2:True
16384:True
99999999:False

Papan peringkat

Matthew Roh
sumber
2
Ini bukan pertama kalinya saya bingung matematika dengan paritas komputasi ... ini adalah situs kode !
Neil
Karena ini adalah salah satu dari cukup banyak ( 1 , 2 , 3 ) pertanyaan ini, mungkin harus memiliki cuplikan untuk melihat semua jawaban.
fəˈnɛtɪk
4
@MikeBufardeci Karena "katalog" dieja secara berbeda berdasarkan negara asal Anda. Bagi kita di AS, ini "katalog". "Papan" adalah budaya-invarian.
mbomb007
2
@tuskiomi Tantangannya hanya bertanya tentang bilangan bulat positif. (0 dianggap adil tetapi tidak positif)
Calvin Hobbies
3
@LucioCrusca Selamat datang di PPCG! Ide dasar dari Code Golf adalah membuat program dalam bentuk sesingkat mungkin. Tantangan ini adalah membaca bilangan bulat (positif, non-nol), dan keluaran jika bilangan genap atau ganjil. Jika Anda bingung dengan sesuatu, silakan kunjungi The Nineteenth Byte dan tanyakan dengan bebas. Atau jika Anda bingung dengan kebijakan atau aturan situs, buka Meta . Akhirnya, Terima kasih telah berlangganan komunitas kami!
Matthew Roh

Jawaban:

112

ArnoldC , 299 283 byte

IT'S SHOWTIME
HEY CHRISTMAS TREE i
YOU SET US UP 0
GET YOUR ASS TO MARS i
DO IT NOW
I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
GET TO THE CHOPPER i
HERE IS MY INVITATION i
I LET HIM GO 2
ENOUGH TALK
TALK TO THE HAND i
YOU HAVE BEEN TERMINATED

Ini menghasilkan 1(yang benar) untuk input ganjil dan 0(yang salah) untuk input genap.

Cobalah online!

" Sekarang ini rencananya " (Upaya penjelasan)

Kode membaca input ke dalam variabel i, menggantinya dengan hasil modulo 2, dan kemudian mencetaknya.

IT'S SHOWTIME                                    # BeginMain
HEY CHRISTMAS TREE i                             #   Declare i
YOU SET US UP 0                                  #   SetInitialValue 0
GET YOUR ASS TO MARS i                           #   AssignVariableFromMethodCall i
DO IT NOW                                        #   CallMethod
I WANT TO ASK YOU ... ANSWERED IMMEDIATELY       #   ReadInteger
GET TO THE CHOPPER i                             #   AssignVariable i
HERE IS MY INVITATION i                          #     SetValue i (push i on the stack)
I LET HIM GO 2                                   #     ModuloOperator 2
ENOUGH TALK                                      #   EndAssignVariable
TALK TO THE HAND i                               #   Print i
YOU HAVE BEEN TERMINATED                         # EndMain
Luis Mendo
sumber
27
Jawaban ArnoldC pertamaku!
Luis Mendo
16
BULLSHIT YOU HAVE NO RESPECT FOR LOGIC GET TO THE CHOPPER
Magic Octopus Urn
17
GET YOUR ASS TO MARS... saya tidak punya kata-kata.
Matthew Roh
12
Saya bergabung dengan komunitas ini untuk mendukung ini. Bagus sekali, tuan
Erik
2
Saya bergabung dengan komunitas ini untuk mengunggah posting ini juga. :)
Vada Poché
46

brainfuck , 8 byte

+[,>,]<.

Masukan dalam bentuk unary. Output adalah 1 (benar) untuk angka ganjil dan NUL (palsu) untuk angka genap.

Cobalah online!

Bagaimana itu bekerja

Kita mulai dengan menambah sel saat ini +agar dapat memasuki loop while [,>,].

Di setiap iterasi, ,baca byte dari STDIN, >maju ke sel ke kanan, lalu ,membaca byte lain dari STDIN. Saat input habis, interpreter (yang ada di TIO) akan mengatur sel ke NUL . Setelah itu terjadi, kondisi loop sementara tidak lagi terpenuhi dan kami keluar darinya.

Biarkan n menjadi bilangan bulat input. Jika ada jumlah input byte yang rata - yaitu, jika n adalah even - iterasi n / 2 pertama akan membaca dua 1 , dan iterasi berikutnya akan membaca dua NUL , meninggalkan rekaman sebagai berikut.

...   1  NUL  NUL
...  49    0    0
                ^

<.mundur satu sel dan mencetak kontennya, mengirimkan byte NUL ke STDOUT.

Namun, jika ada jumlah input byte yang ganjil, iterasi pertama (n - 1) / 2 akan membaca dua 1 , dan iterasi berikutnya akan membaca satu 1 dan satu NUL , meninggalkan rekaman sebagai berikut.

...   1    1  NUL
...  49   49    0
                ^

<sekarang akan mundur ke sel yang memegang byte / karakter 1 , yang .dicetak.

Dennis
sumber
34

Mathematica, 4 byte

OddQ

Memberikan Trueinput ganjil dan Falsebahkan input, siapa tahu?

Ada juga EvenQ, tapi siapa yang mau mengetik semua itu?

Martin Ender
sumber
22
Oh tidak. builtin lagi.
Matthew Roh
7
@SIGSEGV Itu Mathematica untukmu. ;)
Kevin Cruijssen
6
2∣#&juga berfungsi
Kelly Lowder
1
@KellyLowder benar tapi itu 6 byte.
Martin Ender
Mengapa nama ini diakhiri dengan Q?
Cyoce
26

Taksi , 1.482 1.290 1.063 1.029 1.009 byte

Saya belum pernah menulis program di Taxi sebelumnya dan saya seorang pemula dalam pemrograman untuk umum, jadi mungkin ada cara yang lebih baik untuk melakukan ini. Saya telah memeriksa kesalahan dan berhasil sedikit golf dengan mencoba berbagai rute yang memiliki hasil yang sama. Saya menyambut setiap dan semua revisi.

Pengembalian 0untuk genap dan 1ganjil.

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Divide and Conquer.2 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 1 l 2 l.Pickup a passenger going to Trunkers.Pickup a passenger going to Equal's Corner.Go to Trunkers:s 1 l.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan "b" if no one is waiting.Pickup a passenger going to Knots Landing.Go to Knots Landing:n 4 r 1 r 2 r 1 l.[a]Pickup a passenger going to The Babelfishery.Go to The Babelfishery:w 1 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 l 1 r.[b]0 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 r.Pickup a passenger going to Knots Landing.Go to Knots Landing:w 1 r 2 r 1 r 2 l 5 r.Switch to plan "a".

Cobalah online!

Anda benar, itu mengerikan untuk dibaca tanpa jeda baris. Ini versi yang diformat:

Go to Post Office:w 1 l 1 r 1 l.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:s 1 l 1 r.
Pickup a passenger going to Divide and Conquer.
2 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.
Pickup a passenger going to Divide and Conquer.
Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.
Pickup a passenger going to Cyclone.
Go to Cyclone:e 1 l 1 l 2 l.
Pickup a passenger going to Trunkers.
Pickup a passenger going to Equal's Corner.
Go to Trunkers:s 1 l.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner:w 1 l.
Switch to plan "b" if no one is waiting.
Pickup a passenger going to Knots Landing.
Go to Knots Landing:n 4 r 1 r 2 r 1 l.
[a]Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:w 1 l.
Pickup a passenger going to Post Office.
Go to Post Office:n 1 l 1 r.
[b]0 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 r.
Pickup a passenger going to Knots Landing.
Go to Knots Landing:w 1 r 2 r 1 r 2 l 5 r.
Switch to plan "a".

Inilah upaya terbaik saya untuk menjelaskan logikanya:

Go to Post Office to pick up the stdin value in a string format.
Go to The Babelfishery to convert the string to a number.
Go to Starchild Numerology to pickup the numerical input 2.
Go to Divide and Conquer to divide the two passengers (stdin & 2).
Go to Cyclone to create a copy of the result.
Go to Trunkers to truncate the original to an integer.
Go to Equal's Corner to see if the two passengers are the same.
Equal's Corner returns the first passenger if they're the same (no .5 removal so the stdin was even) or nothing if they're not.
If nothing was returned, it was odd, so go pick up a 0 from Starchild Numerology.
Go to Knots Landing to convert any 0s to 1s and all other numbers to 0s.
Go to The Babelfishery to convert the passenger (either a 1 or 0 at this point) to a string.
Go to Post Office to print that string.
Try and fail to go to Starchild Numerology because the directions are wrong so the program terminates.

Tidak kembali ke Garasi Taksi menyebabkan output ke STDERR tapi saya baik - baik saja dengan itu .

Toast insinyur
sumber
7
Saya selalu belajar bahwa keburukan itu jahat
aross
2
Tidak hanya bahasanya membutuhkan penggunaan luas untuk pergi, satu-satunya metode percabangan adalah dengan menggunakan paket, yang hanya nama yang berbeda untuk goto.
Engineer Toast
23

Retina , 8 byte

[02468]$

Jawaban Retina untuk input desimal. Ini juga merupakan solusi regex biasa yang bekerja di hampir semua rasa regex. Cocokkan (dan cetak 1) untuk input genap dan tidak cocok (dan cetak 0) untuk input ganjil.

Cobalah online!

Alternatif, juga untuk 8 byte, menggunakan tahap transliterasi untuk mengubah semua angka genap menjadi yang xpertama (karena tahap transliterasi memiliki built-in untuk angka genap / ganjil):

T`E`x
x$

Tentu saja, format input terpendek (bahkan lebih pendek dari unary ) akan menjadi biner dalam hal ini, di mana regex sederhana 0$akan cukup. Tetapi karena tantangan pada dasarnya adalah tentang menemukan digit biner yang paling tidak signifikan, input biner tampaknya menghindari tantangan yang sebenarnya.

Martin Ender
sumber
1
+1 untuk "TeX". Buat saya ingin melihat jawaban LaTeX ...
Brevan Ellefsen
@ Richard Dan karenanya itu bukan input yang valid yang perlu ditangani. (Meskipun itu sebenarnya berarti ditangani dengan benar.)
Martin Ender
20

Python, 11 10 byte

-1 byte terima kasih kepada Griffin

1 .__and__

Cobalah online!
Menggunakan bitwise and, mengembalikan 0untuk genap dan 1ganjil

tongkat
sumber
2
1 .__and__adalah salah satu char lebih pendek
Griffin
20

LOLCODE, 67 byte

HOW DUZ I C YR N
  VISIBLE BOTH SAEM MOD OF N AN 2 AN 0
IF U SAY SO

Fungsi yang mengembalikan WIN(benar) jika angka genap, yang lain (ganjil) akan mengembalikan FAIL(salah).

Panggil dengan C"123".

lebih kaya
sumber
20

MATL , 5 3 byte

Karena builtin membosankan

:He

Ini menghasilkan matriks nilai bukan nol (yang benar) untuk input genap, dan matriks dengan nol pada entri kanan bawahnya (yang salah) untuk input ganjil.

Cobalah online! Kode footer adalahif-elsecabang untuk menggambarkan kebenaran atau kesalahan dari hasilnya. Menghapus footer itu akan secara implisit menampilkan matriks.

Penjelasan

Pertimbangkan input 5sebagai contoh

:     % Implicitly input n. Push row vector [1 2 ... n]
      % STACK: [1 2 3 4 5]
He    % Reshape into a 2-row matrix, padding with zeros if needed
      % STACK: [1 3 5;
                2 4 0]
Luis Mendo
sumber
7
'Dibangun membosankan' HeAA, HeAA, HeAA. (Maaf itu kata-kata buruk)
Matthew Roh
3
@SIGSEGV HeHeHe
Luis Mendo
2
Pendekatan cerdas! :)
Stewie Griffin
17

Java 8, 8 byte

n->n%2<1

Coba di sini.

Java 7, 30 byte

Object c(int n){return n%2<1;}

Coba di sini.

Output trueuntuk angka genap dan falseangka ganjil


Jika 1/0akan diizinkan alih-alih true/false( tidak, mengingat jumlah suara di sini ):

  • Java 8 (6 byte): n->n%2
  • Java 7 (25 byte): int c(int n){return n%2;}
Kevin Cruijssen
sumber
22
Di mana semua barang Java yang sangat bertele-tele itu? Saya merasa ini setidaknya 50 byte terlalu pendek ...
Stewie Griffin
2
Sekali waktu ada tag yang disebut kode-trolling . Tapi yang satu ini adalah sangat bagus diterima Jawa-jawaban, dan di sini adalah kode-golf jawaban. Dan lagi .
Stewie Griffin
2
@ lukeg Hai, standarnya adalah program atau fungsi , kecuali tantangannya menyatakan sebaliknya. Yang berarti bahasa seperti Java dan C # diizinkan untuk memposting fungsi saja (dan impor yang diperlukan) alih-alih seluruh kelas. Jika penanya-pertanyaan akan secara khusus meminta program, maka saya memang harus memasukkan kode batas seperti kelas / antarmuka dan metode utama.
Kevin Cruijssen
1
@ lukeg Jika Anda ingin menjawab sendiri tantangan, berikut adalah beberapa tip untuk bermain golf di Jawa yang mungkin menarik untuk dibaca. Selamat datang di PPCG! :)
Kevin Cruijssen
6
@StewieGriffin Ini dia! int o(int n){return java.util.stream.IntStream.of(n).map(n->n%2).filter(n==0).fi‌​ndAny().isPresent();‌​}
Olivier Grégoire
16

Piet, 15 codels / 16 byte

Kode sumber

5njaampjhompppam

Penerjemah online tersedia di sini.

Program ini mengembalikan 0 jika inputnya genap dan 1 jika inputnya ganjil.

Teks di atas mewakili gambar. Anda dapat menghasilkan gambar dengan menempelkannya ke kotak teks pada halaman penerjemah. Untuk kenyamanan saya berikan gambar di bawah ini di mana ukuran codel adalah 31 piksel. Kotak ada di sana untuk dibaca dan bukan bagian dari program.

Penjelasan

Program ini menggunakan modulo builtin untuk menentukan apakah inputnya genap atau ganjil.

Instruction    Δ Hue   Δ Lightness   Stack
------------   -----   -----------   -------
In (Number)    4       2             n
Push [2]       0       1             2, n
Modulo         2       1             n % 2
Out (Number)   5       1             [Empty]
[Exit]         [N/A]   [N/A]         [Empty]

Codel biru gelap di kiri bawah tidak pernah dikunjungi dan dapat diubah menjadi warna selain warna codel tetangga. Saya memilih biru tua karena saya pikir itu terlihat bagus dengan sisa program. Codel hitam kiri atas juga bisa menjadi putih, tetapi tidak ada warna lain. Saya telah memilih hitam karena saya pikir itu terlihat lebih bagus.

Saya telah menyediakan program dalam bentuk gambar dan teks karena tidak ada konsensus yang jelas tentang bagaimana cara menilai program Piet. Jangan ragu untuk mempertimbangkan diskusi meta.

Mike Bufardeci
sumber
15

brainfuck , 14 byte

Input dan output diambil sebagai kode karakter sesuai meta ini .
Nilai byte 1 sesuai dengan angka ganjil dan 0 sampai genap.

+>>,[-[->]<]<.

Cobalah online!

Emigna
sumber
14

JavaScript, 6 byte

Fungsi anonim:

n=>n&1

Atau dengan panjang yang sama:

n=>n%2

Keduanya akan kembali 0|1yang harus memenuhi persyaratan truthy|falseynilai.

Coba kedua versi online

masukkan nama pengguna di sini
sumber
Menurut jawaban Java ini tidak memenuhi persyaratan. Apakah JavaScript berbeda dalam hal ini?
TheLethalCoder
4
Pertanyaannya dengan jelas menyatakan " Ini tidak diperlukan, Anda dapat menggunakan nilai-nilai Kebenaran / Kepalsuan lainnya ", yang mana 0|1, kan? @TheLethalCoder
insertusernamehere
1
Saya tidak yakin apakah mereka ada di JavaScript itu yang saya minta, lihat meta q / a untuk melihat apakah mereka. Saya tidak cukup familiar dalam JavaScript untuk tahu.
TheLethalCoder
4
JavaScript jauh lebih sedikit diketik daripada Java. Dengan senang hati memperlakukan hampir semua jenis apa pun. Secara khusus, senang memperlakukan float sebagai booleans (sedangkan Java akan membuat kesalahan waktu kompilasi jika Anda melakukan ini). (Omong-omong, Anda mungkin tidak ingin tahu mengapa ini mengembalikan float daripada integer.)
1
Bagus :) Saya tidak cukup akrab untuk mengenal diri saya sendiri jadi hanya ingin tahu.
TheLethalCoder
12

Japt , 1 byte

v

Pengembalian 1untuk angka genap, 0untuk ganjil.

Cobalah online!

Penjelasan

Salah satu fitur yang menentukan Japt adalah bahwa tidak seperti kebanyakan bahasa golf, fungsi tidak memiliki arity tetap; artinya, fungsi apa pun dapat menerima sejumlah argumen. Ini berarti bahwa Anda kadang-kadang dapat meninggalkan argumen dan Japt akan menebak apa yang Anda inginkan. vpada angka adalah fungsi yang menerima satu argumen dan kembali 1jika nomornya dapat dibagi oleh argumen, yang lain 0. Sebagai contoh:

v3

Program ini akan menampilkan 1jika inputnya dibagi 3, dan 0sebaliknya. Kebetulan argumen defaultnya adalah 2, dengan demikian menyelesaikan tantangan ini dalam satu byte.


Alternatif solusi 1 byte:

¢

¢mengubah input menjadi string basis-2. Itu-h bendera mengembalikan char terakhir dari string.

Cobalah online!

Oliver
sumber
11

brainfuck , 12 byte

,++[>++]>++.

Ini membutuhkan juru bahasa dengan selotip bundar dan sel yang membungkus. Yang ada di TIO memiliki 65.536 sel 8-bit dan memenuhi persyaratan.

I / O dalam byte. Input ganjil memetakan ke 0x00 (falsy), bahkan input ke byte non-nol (benar).

Cobalah online!

Bagaimana itu bekerja

Kita mulai dengan membaca byte input dengan ,dan menambahkan 2 dengan nilainya ++. Kita akan lihat nanti mengapa penambahan itu perlu.

Selanjutnya, kita memasukkan loop yang bergerak ke sel di sebelah kanan, menambahkan 2 ke dalamnya, dan mengulangi proses kecuali ini menetapkan nilai sel ke 0 .

Awalnya, semua sel kecuali untuk sel input tahan 0 . Jika inputnya ganjil, menambahkan 2 tidak akan pernah nol. Namun, setelah mengulang sekitar 127 kali, perulangan loop berikutnya akan mengatur sel di sebelah kanan sel input menjadi 128 × 2 = 0 (mod 256) , menyebabkan loop berakhir. >++mengulangi loop body sekali lagi, jadi sel selanjutnya juga di-nolkan dan dicetak ..

Di sisi lain, jika input n dan n adalah genap, kode sebelum loop menetapkan sel input ke n + 2 . Setelah perulangan di sekitar pita (256 - (n - 2)) / 2 = (254 - n) / 2 kali, sel input akan mencapai 0 , dan sel di sebelah kanannya akan memegang nilai (254 - n) / 2 × 2 = 254 - n . Setelah menambahkan 2 dengan >++, .akan mencetak 256 - n = -n (mod 256) , yang bukan nol sejak n adalah bukan nol.

Akhirnya, perhatikan bahwa case kedua akan mencetak 258 - n = 2 - n (mod n) jika kita tidak menambah input sebelum loop, karena satu loop lagi di sekitar pita akan diperlukan untuk nol keluar sel input. Program karenanya akan gagal untuk input 2 .

Dennis
sumber
11

Sinclair ZX81 BASIC 124 byte 114 byte 109 byte 57 50 BASIC tokenized byte

Sesuai komentar Adm di bawah ini, berikut adalah kandidat rilis terbaru:

 1 INPUT A
 2 IF NOT A THEN STOP
 3 PRINT A;":";NOT INT A-(INT (INT A/VAL "2")*VAL "2")

Sekarang akan PRINT 1genap dan0 ganjil. Nol keluar.

Berikut adalah daftar simbolik versi lama untuk tujuan referensi:

 1 INPUT A
 2 IF NOT A THEN STOP
 3 LET B=INT (INT A/2)
 4 PRINT A;":";NOT INT A-B*2
 5 RUN

Ini daftar lama (v0.01) sehingga Anda dapat melihat peningkatan yang saya buat karena tidak hanya listing baru ini lebih kecil, tetapi juga lebih cepat:

 1 INPUT A
 2 IF A<1 THEN STOP
 3 LET B=INT (INT A/2)
 4 LET M=1+INT A-B*2
 5 PRINT A;":";
 6 GOSUB M*10
 7 RUN
10 PRINT "TRUE"
11 RETURN
20 PRINT "FALSE"
21 RETURN

Dan di sini adalah v0.02 (menggunakan substring Sinclair):

 1 INPUT A
 2 IF NOT A THEN STOP
 3 LET B=INT (INT A/2)
 4 LET M=1+INT A-B*2
 5 LET C=4*(M=2)
 6 PRINT A;":";"TRUE FALSE"(M+C TO 5+C+(M=2))
 7 RUN

ZX81 dalam aksi - benar atau salah dari v1 / 2

Shaun Bebbers
sumber
1
Ini bukan kolmogorov-kompleksitas . Anda hanya perlu mengembalikan 0 atau 1 untuk setiap input yang diberikan.
Adám
Pertanyaannya sepertinya sudah diedit sejak saya membuat entri awal saya karena <i> membaca </i> seperti benar / salah harus dikembalikan. Dengan demikian, saya dapat menyederhanakan daftar simbolik lebih lanjut.
Shaun Bebbers
1
Mengapa Anda harus keluar dari nol? Tidak bisa Anda hanya PRINT (A-2*INT A/2)/A?
Adám
Dalam pertanyaan awal, yang telah diedit dengan sangat membantu, ia menetapkan bahwa nilainya 0tidak boleh menghasilkan TRUEatau FALSE, karena 0itu tidak seharusnya menghasilkan hasil maka saya meminta STOPping program. Saya mungkin menginterpretasikan pertanyaan asli seperti yang diposting oleh @SIGSEGV sedikit terlalu harfiah. Ya, orang dapat mengoptimalkan dan memperbaiki, Anda benar.
Shaun Bebbers
10

05AB1E , 1 byte

È

Eksplorasi sendiri. Kembalia % 2 == 0

Cobalah online!

Okx
sumber
Éadalah pilihan yang lebih baik, menurut pendapat pribadi saya; bercanda.
Magic Octopus Urn
7
Saya berasumsi Ékembali a % 2 == 1.
SIGSTACKFAULT
1
Cukup jelas jika Anda sudah tahu operatornya
MilkyWay90
8

Retina, 3 byte

11

Baris baru tertinggal sangat penting. Mengambil input di unary. Output 1 untuk angka ganjil, tidak ada untuk angka genap. Cobalah online!

Neil
sumber
Anda tahu, Anda bisa menyalin jawaban lengkap (dengan format yang diperlukan untuk umpan baris tambahan) dari TIO.
Martin Ender
@ MartinEnder Tidak, saya tidak tahu.
Neil
Ini cuplikan kedua hingga terakhir saat Anda menghasilkan permalink.
Martin Ender
Oh, itu potongan utuh? Saya hanya melihat baris judul.
Neil
@Neil jika Anda mengklik dalam cuplikan, itu akan memperluasnya dan Anda akan melihat tubuh
Dada
8

C ++, 25 byte

template<int v>int o=v&1;

Ini mendefinisikan templat variabel ( konstruksi seperti fungsi ) dengan nilai yang sama dengan operasi bitwise input&1. 0untuk nilai genap, 1untuk nilai ganjil. Nilai tersebut dihitung pada waktu kompilasi.

Membutuhkan C ++ 14.

Cobalah online!

Cássio Renan
sumber
Woah, itu sepertinya sangat pintar. Saya belum pernah melihat jawaban seperti ini sebelumnya! Bagaimana Anda menyebutnya?
DJMcMayhem
@DJMcMayhem Ini adalah penggunaan sederhana dari templat variabel C ++ 14 . Ini tidak semua yang pintar, meskipun: Pendekatan fungsi sederhana ( int o(int v){return v&1;}) akan mengambil jumlah byte yang sama, dengan perbedaan bahwa nilai akan dihitung pada saat runtime.
Cássio Renan
Saya tidak berpikir ini benar-benar memenuhi syarat, karena kode hanya akan dikompilasi menjadi return 1 atau return 0. Menjalankan kode kompilasi yang sama lagi tidak akan pernah menghasilkan hasil yang berbeda, itu bukan fungsi dengan cara ini. Lebih dekat ke konstanta.
Drunken Code Monkey
@DrunkenCodeMonkey waktu evaluasi tidak relevan. Yang penting adalah bahwa saya bisa meneruskan argumen ke konstruk (memberikan input), dan itu akan memberikan hasil (mengembalikan output). Dari sudut pandang Anda, tidak ada fungsi yang memenuhi syarat, karena tanpa main()konstruksi seperti, program juga hanya akan dikompilasi menjadi return 0, atau bahkan gagal dikompilasi sama sekali. Ini bertentangan dengan meta post yang saya tautkan dalam jawaban ini.
Cássio Renan
1
C ++ fungsi lambda menyimpan 3 byte [](int x){return x%2;} Cobalah secara online
Johan du Toit
8

Pyth, 3 2 byte

Saya melakukannya. Saya bermain golf yang tidak dapat ditinggali. Untuk sekali ini, ini adalah solusi non-sepele yang berhasil mendapatkan byte terakhir!

!F

Kebenaran pada nilai genap (tidak termasuk 0, tapi itu tidak positif jadi ...).

Penjelasan:

!    Not
 FQQ Applied to the input (first Q) Q times

Misalnya !!2 = !0 = 1,, dan!!!3 = !!0 = !1 = 0

Saya akan menyimpan perpustakaan saya solusi 3-byte di sini di bawah ini.

"Ada jawaban lain dengan beberapa solusi 3-byte, tetapi masih jauh dari selesai. Mari kita tambahkan beberapa lagi:

@U2

Mengindeks ke dalam daftar secara [0,1]modular, memberikan nilai kebenaran pada input ganjil.

}2P

Apakah 2 dalam faktorisasi utama input? (Truthy on even)

ti2

Apakah GCD 2 dan input 2? (Truthy on even)

gx1

apakah XOR-ing input dengan 1 tidak menguranginya? (Truthy on even)

q_F

Pada dasarnya di Q == Q*-1^Qmana Q adalah input, tetapi dilakukan melalui loop. (Truthy on even)

_FI

Sama seperti di atas.

g^_

Diterjemahkan ke Q <= -Q^Q(Kebenaran saat genap)

Perhatikan bahwa salah satu solusi di atas yang melibatkan gakan bekerja dengan <untuk membalikkan kebenaran palsu.)

Steven H.
sumber
1
Ya, itu agak pintar :)
Digital Trauma
7

C #, 8 byte

n=>n%2<1

Kompilasi ke a Func<int, bool>.

Atau jika fungsi anonim tidak diizinkan, metode ini untuk 21 byte:

bool p(int n)=>n%2<1;
TheLethalCoder
sumber
@obarakon Tidak dalam C #, lihat jawaban ini di meta . Pada dasarnya if (1)tidak dikompilasi.
TheLethalCoder
tidak ada if (1)dalam kode Anda?
ANDA
1
@ YOU Benar, baca posting meta untuk mengerti apa yang saya maksud dengan itu.
TheLethalCoder
2
@ YOU, definisi yang diterima (di situs ini) dari nilai truey / falsey adalah: Jika if (x)dievaluasi benar maka itu xadalah nilai truey. Jika bernilai false maka itu salah false. Jadi, dalam pseudo code: if x, disp(true), else disp(false). Jika gagal dikompilasi, maka xtidak dapat digunakan. Dalam MATLAB dan beberapa bahasa lain, apa pun yang bukan nol dianggap benar, sementara 0dan falsedianggap salah. Jadi string Helloadalah nilai kebenaran di MATLAB. Namun, beberapa bahasa memerlukan nilai untuk menjadi nilai boolean (kasus di sini), sehingga harus dikonversi ke boolean, menggunakan <1.
Stewie Griffin
Saya melihat. terima kasih untuk penjelasannya.
ANDA
7

Pyth, 3

Saya mengharapkan pyth memiliki 1 atau 2 byte builtin untuk ini. Sebaliknya, inilah solusi terbaik yang bisa saya temukan:

%Q2

atau

.&1

atau

e.B
Trauma Digital
sumber
2
Bukan builtin, tetapi ada solusi 2-byte .
Steven H.
7

TIS-100, 39 byte

Tentu saja, ini, lebih tepatnya, program untuk arsitektur T21 Basic Execution Node, seperti yang ditiru oleh emulator TIS-100.

Saya akan mengarahkan Anda ke jawaban ini untuk penjelasan mendalam yang fantastis tentang penilaian untuk program TIS-100, serta strukturnya.

@0
ADD UP
G:SUB 2
JGZ G
MOV ACC ANY

Penjelasan:

@0          # Indicates that this is node 0
ADD UP      # Gets input and adds it to ACC, the only addressable register in a T-21
G:          # Defines a label called "G"
SUB 2       # Subtracts 2 from ACC
JGZ G       # If ACC is greater than 0, jumps to G
MOV ACC ANY # Sends the value of ACC to the first available neighbor; in this case, output.
            # Implicitly jumps back to the first line

Dalam pseudocode, akan terlihat seperti:

while (true) {
    acc = getIntInput()
    do {
        acc -= 2
    } while (acc > 0)
    print(acc)
}

T21 tidak memiliki tipe boolean atau nilai kebenaran / kepalsuan, sehingga program mengembalikan -1 untuk angka ganjil dan 0 untuk angka genap, kecuali jika input sebelumnya ganjil, dalam hal ini ia mengembalikan -1 untuk angka genap dan 0 untuk ganjil angka - jika fakta itu mengganggu Anda, ini adalah jawaban program penuh, jadi Anda bisa memulai ulang T21 di antara penggunaan.

Pengawas
sumber
Saya hanya memikirkan TIS-100, permainan puzzle Zachtronics, karena saya ingin membelinya minggu lalu. Apakah TIS juga merupakan bahasa aktual, atau apakah hanya ada di video game itu?
seshoumara
@seshoumara Setahu saya, itu hanya ada di dalam game. Seluruh arsitektur mesin di TIS agak tipikal, dan bahasa gaya Majelis ini mengait ke dalamnya.
steenbergh
Saya dapat mengkonfirmasi, itu hanya ada dalam permainan (dan pada kenyataannya, bahkan di alam semesta ini adalah arsitektur yang aneh dan aneh). Saya menulis jawaban yang dikaitkan dengan Turtleman seolah-olah ada perangkat TIS yang asli, tetapi saya hanya melakukannya dalam karakter untuk bersenang-senang.
undergroundmonorail
2
@ Blacksilver Tantangan sebenarnya, saya pikir, adalah membuat jawaban Spacechem!
Tutleman
1
Saya telah menerapkan emulator TIS untuk TIO, jadi sekarang Anda dapat mencobanya secara online!
Phlarx
6

Jelly , 1 byte

Cobalah online!

Hanya builtin lain.

Bagi orang yang tidak tahu Jelly: ia memiliki sedikit kemampuan untuk menyimpulkan bit kode yang hilang, sehingga tidak ada banyak perbedaan sintaksis antara potongan, fungsi, dan program lengkap; penerjemah akan secara otomatis menambahkan kode untuk memasukkan argumen yang sesuai dan menampilkan hasilnya. Itu cukup berguna ketika berhadapan dengan aturan PPCG, yang memungkinkan fungsi dan program tetapi melarang snippet. Di tautan TIO, saya memperlakukan ini sebagai fungsi dan menjalankannya pada setiap integer dari 1 hingga 20 inklusif, tetapi berfungsi sebagai program lengkap juga.

Jelly , 2 byte

&1

Cobalah online!

Cukup pendek tanpa builtin juga. (Ini bitwise-DAN dengan 1.)


sumber
2
Semua bahasa ini tampaknya sedikit curang untuk pertanyaan ini lol
Drunken Code Monkey
6

7 , 18 karakter, 7 byte

177407770236713353

Cobalah online!

7 tidak memiliki apa pun yang menyerupai pernyataan if normal, dan memiliki lebih dari satu cara idiomatis untuk mewakili boolean. Karena itu, sulit untuk mengetahui apa yang dianggap sebagai kebenaran dan kepalsuan, tetapi program ini digunakan1 untuk string ganjil dan nol untuk genap (nilai kebenaran dan kesalahan untuk Perl, di mana 7 penerjemah ditulis). (Cukup mudah untuk mengubah ini; output ganjil ditentukan sebelum 7 pertama, output genap ditentukan antara dua 7 pertama. Mungkin berpotensi membutuhkan perubahan format output untuk menangani jenis output lainnya, meskipun; Saya menggunakan keduanya keluaran berbeda terpendek di sini.)

7 menggunakan pengkodean oktal terkompresi di mana tiga byte sumber mewakili delapan byte program, jadi 18 karakter sumber diwakili dalam 7 byte pada disk.

Penjelasan

177407770236713353
 77  77     7       Separate the initial stack into six pieces (between the 7s)

        023         Output format string for "output integers; input one integer"
       7   6        Escape the format string, so that it's interpreted as is
             13     Suppress implicit looping
               3    Output the format string (produces input)
                5   Run the following code a number of times equal to the input:
   40                 Swap the top two stack elements, escaping the top one
                 3  Output the top stack element

Seperti banyak format output, "integer keluaran" membatalkan sejumlah tingkat pelarian sebelum menghasilkan; dengan demikian 40, yang digabungkan membuat operasi swap-and-escape, dapat digunakan sebagai pengganti 405, operasi swap (yang merupakan swap-and-escape diikuti oleh unescape). Jika Anda menggunakan format output yang tidak stabil berkenaan dengan melarikan diri, Anda perlu format lengkap405 sana. (Kebetulan, alasan mengapa kami perlu melarikan diri dari format string awalnya adalah bahwa jika output pertama berisi karakter yang tidak dapat ditampilkan, secara otomatis memaksa format output 7. Melewatinya menghapus karakter yang tidak terwakili dan memungkinkan format 0 untuk dipilih.)

Dari enam elemen stack awal, yang teratas adalah program utama (dan dikonsumsi oleh 13hal pertama yang dijalankan); yang kedua adalah 023yang memilih format output dan meminta input, dan dikonsumsi oleh operasi itu; yang ketiga dikonsumsi sebagai efek samping dari 3operasi (digunakan untuk membuang elemen stack selain menghasilkan output); yang keempat,, 40adalah tubuh loop (dan dikonsumsi oleh5 yang mengeksekusi loop); dan yang kelima dan keenam ditukar beberapa kali sama dengan input (dengan demikian berakhir di posisi semula jika inputnya genap, atau di posisi masing-masing jika inputnya ganjil).

Anda bisa bermain golf dari karakter dengan mengubah yang mengarah 177ke 17(dan mengandalkan elemen tumpukan keenam kosong implisit), tetapi itu akan mengubah paritas output ke metode yang kurang idiomatis daripada aneh-itu-benar, dan itu tidak menyimpan seluruh byte (sumbernya masih tujuh byte panjang). Karena itu, saya memutuskan untuk menggunakan bentuk output yang lebih alami, karena skornya tidak lebih buruk.


sumber
6

Brain-Flak , 22 20 byte

Inilah jawaban keren lainnya di Brain-Flak yang harus Anda periksa

(({})){({}[()]<>)}<>

Cobalah online!

Penjelasan

Untuk memulai, kami akan membuat salinan input kami dengan (({})).

Salinan bawah akan berfungsi sebagai nilai kebenaran sementara yang teratas akan digunakan untuk pemrosesan yang sebenarnya. Ini dilakukan karena kita memerlukan input berada di atas dan agak rumit (dua byte tambahan!) Untuk meletakkan 1 di bawah input.

Lalu kita mulai satu putaran {({}[()]<>)} . Ini adalah modifikasi sederhana pada loop hitung mundur standar yang mengganti tumpukan setiap kali menurun.

Karena ada dua tumpukan nomor genap akan berakhir di bagian atas tumpukan itu dimulai sementara angka ganjil akan berakhir di tumpukan yang berlawanan. Nilai yang disalin akan tetap di tempatnya dan karenanya akan bertindak sebagai penanda tempat kami memulai.

Setelah kita selesai dengan loop kita punya 0 (awalnya input) yang duduk di atas nilai kebenaran (salinan input) atau falsy (tumpukan kosong). Kami juga memiliki nilai yang berlawanan pada tumpukan lainnya.

Kita perlu menyingkirkan 0yang bisa dihapus oleh {}atau <>. Keduanya tampaknya bekerja dan memberikan hasil yang berlawanan{} menyebabkan nilai salah untuk nol, ketika harus mengembalikan kebenaran. Ini karena nilai "kebenaran" kami adalah salinan input dan nol adalah satu-satunya input yang bisa salah.

Masalah ini diselesaikan dengan mengakhiri program dengan <>gantinya.

(Tentu saja sesuai dengan spesifikasi saya tidak secara teknis harus mendukung nol tetapi memberikan dua opsi saya lebih suka mendukungnya)

Wisaya Gandum
sumber
6

BitCycle , 19 17 16 byte

?ABv
 / \ <
!+ <

Cobalah online!

Argh, saya merasa seperti ada solusi 18 byte mengambang di luar jangkauan :( Haha! -2 byte dengan menggunakan +untuk mengarahkan bit yang datang dari arah yang berbeda.

Ini masih terasa seperti ada terlalu banyak ruang kosong di dalamnya (keseluruhan 6 byte!)

Penjelasan:

?ABv    Feed unary input into the main loop
 / \    Every loop, two bits will be removed from the input
 + <

 / \ <  When we reach the point where there is either one or no bits of input left
!+      If one, it will reflect off both /\s and turn left at the +
        And output, otherwise the program ends since no more bits are moving
Jo King
sumber
5

Batch, 16 byte

@cmd/cset/a%1%%2

Output 1 untuk ganjil, 0 untuk genap. Alternatif versi 16-byte juga berfungsi pada angka negatif:

@cmd/cset/a"%1&1

17 byte untuk menghasilkan 1 untuk genap, 0 untuk ganjil:

@cmd/cset/a"~%1&1
Neil
sumber
Program Anda hanya menggemakan hasil MOD, yang tidak benar. Pertanyaannya mengatakan format output harus " (Input):(Output)"
stevefestl
5

Excel, 10 byte

=MOD(A1,2)

Atau:

=ISODD(A1)

Untuk output dari:

http://i.imgur.com/7dJydqc.png

Guci Gurita Ajaib
sumber
1
Saya belum pernah melihat excel dalam kode golf ...
programmer5000
1
Alternatif versi Excel VBA kode ini, ?[A1]mod 2; VBE anonim menjalankan fungsi jendela yang mengambil input dari [A1]dan output ke jendela VBE langsung dengan 0(falsey) mewakili genap dan 1(kebenaran) mewakili ganjil
Taylor Scott
5

JSFuck , 9685 9384 6420 byte

JSFuck adalah gaya pemrograman esoterik dan pendidikan yang didasarkan pada bagian atom JavaScript. Hanya menggunakan enam karakter berbeda untuk menulis dan mengeksekusi kode.

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[!+[]+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]

Output 1 untuk odd dan 0 untuk even.

Cobalah online!

alert([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[!+[]+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]](prompt()))

powelles
sumber
Saya pikir Anda dapat menampilkan 0/1 bukannya benar / salah. alert(prompt()%2)tampaknya menjadi 9384 karakter.
ETHproduk
Saya bermain golf ini ke 6497 karakter . Ini sama dengan JavaScript berikut: []["fill"]["constructor"]("return this%2")["call"]. filldipilih karena itu hanya biaya 81 karakter, yang paling sedikit dari semua metode array. Anda juga dapat berargumen bahwa JSFuck bukan bahasa yang terpisah, melainkan bagian dari JavaScript.
Luke
@ Lukas Saya tidak bisa menjalankannya dalam cuplikan kode dan karena ini hanya lelucon, saya akan tetap menggunakan versi berbasis waspada kecuali Anda dapat membantu saya mengetahui apa yang saya lakukan salah.
powelles
@ Lukas Ganti ruang dengan a +untuk menyimpan 77 byte lebih lanjut ;-) Dan saya pribadi berpikir menjawab di JSF baik-baik saja; pada dasarnya dialek JS.
ETHproduk
Kode yang saya tempel seperti nama fungsi. Cukup tambahkan tanda kurung dan sertakan argumen di dalamnya.
Luke
5

Bash + bc, 21 14 11 9 byte

bc<<<$1%2

Membaca input baris perintah, memperluas nilai ke string dengan operasi mod, dan pipa string ke bc untuk perhitungan. Output 1 untuk ganjil, 0 untuk genap.

Kasus uji:

(Input):(Output)
1:1
2:0
16384:0
99999999:1

Sunting: disimpan 7 byte, terima kasih kepada @ ais523
Sunting 2: simpan 3 byte lagi berkat @Dennis
Sunting 3: simpan dua lagi berkat @Dennis

Christopher Pitts
sumber
2
Selamat datang di situs ini!
DJMcMayhem
Mungkin Anda bisa mengambil input dari argumen baris perintah ke bash (seperti $1) daripada menghabiskan byte membacanya dari stdin?
@ ais523: Saran bagus! Saya seharusnya berpikir untuk melakukannya dalam skrip alih-alih hanya pada baris perintah.
Christopher Pitts
Anda dapat mempersingkat ini menjadi bc<<<$1%2.
Dennis
@ Dennis: Terima kasih! Saya sudah mencobanya sebelumnya, tetapi tidak bisa mendapatkan sintaks yang benar.
Christopher Pitts