var QUESTION_ID=113448,OVERRIDE_USER=64499;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){var F=function(a){return a.lang.replace(/<\/?a.*?>/g,"").toLowerCase()},el=F(e),sl=F(s);return el>sl?1:el<sl?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
ArnoldC ,
299283 byteIni menghasilkan
1
(yang benar) untuk input ganjil dan0
(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.sumber
BULLSHIT
YOU HAVE NO RESPECT FOR LOGIC
GET TO THE CHOPPER
GET YOUR ASS TO MARS
... saya tidak punya kata-kata.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.
<.
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.
<
sekarang akan mundur ke sel yang memegang byte / karakter 1 , yang.
dicetak.sumber
Mathematica, 4 byte
Memberikan
True
input ganjil danFalse
bahkan input, siapa tahu?Ada juga
EvenQ
, tapi siapa yang mau mengetik semua itu?sumber
2∣#&
juga berfungsiQ
?Taksi ,
1.4821.2901.0631.0291.009 byteSaya 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
0
untuk genap dan1
ganjil.Cobalah online!
Anda benar, itu mengerikan untuk dibaca tanpa jeda baris. Ini versi yang diformat:
Inilah upaya terbaik saya untuk menjelaskan logikanya:
Tidak kembali ke Garasi Taksi menyebabkan output ke STDERR tapi saya baik - baik saja dengan itu .
sumber
Retina , 8 byte
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 cetak0
) untuk input ganjil.Cobalah online!
Alternatif, juga untuk 8 byte, menggunakan tahap transliterasi untuk mengubah semua angka genap menjadi yang
x
pertama (karena tahap transliterasi memiliki built-in untuk angka genap / ganjil):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.sumber
Python,
1110 byte-1 byte terima kasih kepada Griffin
Cobalah online!
Menggunakan bitwise
and
, mengembalikan0
untuk genap dan1
ganjilsumber
1 .__and__
adalah salah satu char lebih pendekLOLCODE, 67 byte
Fungsi yang mengembalikan
WIN
(benar) jika angka genap, yang lain (ganjil) akan mengembalikanFAIL
(salah).Panggil dengan
C"123"
.sumber
MATL ,
53 byteKarena builtin membosankan
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 adalah
if-else
cabang untuk menggambarkan kebenaran atau kesalahan dari hasilnya. Menghapus footer itu akan secara implisit menampilkan matriks.Penjelasan
Pertimbangkan input
5
sebagai contohsumber
Java 8, 8 byte
Coba di sini.
Java 7, 30 byte
Coba di sini.
Output
true
untuk angka genap danfalse
angka ganjilJika
1/0
akan diizinkan alih-alihtrue/false
( tidak, mengingat jumlah suara di sini ):n->n%2
int c(int n){return n%2;}
sumber
int o(int n){return java.util.stream.IntStream.of(n).map(n->n%2).filter(n==0).findAny().isPresent();}
Piet, 15 codels / 16 byte
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.
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.
sumber
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!
sumber
JavaScript, 6 byte
Fungsi anonim:
Atau dengan panjang yang sama:
Keduanya akan kembali
0|1
yang harus memenuhi persyaratantruthy|falsey
nilai.Coba kedua versi online
sumber
0|1
, kan? @TheLethalCoderJapt , 1 byte
Pengembalian
1
untuk angka genap,0
untuk 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.
v
pada angka adalah fungsi yang menerima satu argumen dan kembali1
jika nomornya dapat dibagi oleh argumen, yang lain0
. Sebagai contoh:Program ini akan menampilkan
1
jika inputnya dibagi 3, dan0
sebaliknya. Kebetulan argumen defaultnya adalah2
, 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!
sumber
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 .
sumber
Sinclair ZX81 BASIC
124 byte114 byte109 byte5750 BASIC tokenized byteSesuai komentar Adm di bawah ini, berikut adalah kandidat rilis terbaru:
Sekarang akan
PRINT
1
genap dan0
ganjil. Nol keluar.Berikut adalah daftar simbolik versi lama untuk tujuan referensi:
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:
Dan di sini adalah v0.02 (menggunakan substring Sinclair):
sumber
PRINT (A-2*INT A/2)/A
?0
tidak boleh menghasilkanTRUE
atauFALSE
, karena0
itu tidak seharusnya menghasilkan hasil maka saya memintaSTOP
ping program. Saya mungkin menginterpretasikan pertanyaan asli seperti yang diposting oleh @SIGSEGV sedikit terlalu harfiah. Ya, orang dapat mengoptimalkan dan memperbaiki, Anda benar.05AB1E , 1 byte
Eksplorasi sendiri. Kembali
a % 2 == 0
Cobalah online!
sumber
É
adalah pilihan yang lebih baik, menurut pendapat pribadi saya; bercanda.É
kembalia % 2 == 1
.Retina, 3 byte
Baris baru tertinggal sangat penting. Mengambil input di unary. Output 1 untuk angka ganjil, tidak ada untuk angka genap. Cobalah online!
sumber
C ++, 25 byte
Ini mendefinisikan templat variabel ( konstruksi seperti fungsi ) dengan nilai yang sama dengan operasi bitwise
input&1
.0
untuk nilai genap,1
untuk nilai ganjil. Nilai tersebut dihitung pada waktu kompilasi.Membutuhkan C ++ 14.
Cobalah online!
sumber
int o(int v){return v&1;}
) akan mengambil jumlah byte yang sama, dengan perbedaan bahwa nilai akan dihitung pada saat runtime.main()
konstruksi seperti, program juga hanya akan dikompilasi menjadireturn 0
, atau bahkan gagal dikompilasi sama sekali. Ini bertentangan dengan meta post yang saya tautkan dalam jawaban ini.[](int x){return x%2;}
Cobalah secara onlinePyth,
32 byteSaya melakukannya. Saya bermain golf yang tidak dapat ditinggali. Untuk sekali ini, ini adalah solusi non-sepele yang berhasil mendapatkan byte terakhir!
Kebenaran pada nilai genap (tidak termasuk 0, tapi itu tidak positif jadi ...).
Penjelasan:
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:
Mengindeks ke dalam daftar secara
[0,1]
modular, memberikan nilai kebenaran pada input ganjil.Apakah 2 dalam faktorisasi utama input? (Truthy on even)
Apakah GCD 2 dan input 2? (Truthy on even)
apakah XOR-ing input dengan 1 tidak menguranginya? (Truthy on even)
Pada dasarnya di
Q == Q*-1^Q
mana Q adalah input, tetapi dilakukan melalui loop. (Truthy on even)Sama seperti di atas.
Diterjemahkan ke
Q <= -Q^Q
(Kebenaran saat genap)Perhatikan bahwa salah satu solusi di atas yang melibatkan
g
akan bekerja dengan<
untuk membalikkan kebenaran palsu.)sumber
C #, 8 byte
Kompilasi ke a
Func<int, bool>
.Atau jika fungsi anonim tidak diizinkan, metode ini untuk 21 byte:
sumber
if (1)
tidak dikompilasi.if (1)
dalam kode Anda?if (x)
dievaluasi benar maka itux
adalah nilai truey. Jika bernilai false maka itu salahfalse
. Jadi, dalam pseudo code:if x, disp(true), else disp(false)
. Jika gagal dikompilasi, makax
tidak dapat digunakan. Dalam MATLAB dan beberapa bahasa lain, apa pun yang bukan nol dianggap benar, sementara0
danfalse
dianggap salah. Jadi stringHello
adalah nilai kebenaran di MATLAB. Namun, beberapa bahasa memerlukan nilai untuk menjadi nilai boolean (kasus di sini), sehingga harus dikonversi ke boolean, menggunakan<1
.Pyth, 3
Saya mengharapkan pyth memiliki 1 atau 2 byte builtin untuk ini. Sebaliknya, inilah solusi terbaik yang bisa saya temukan:
atau
atau
sumber
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.
Penjelasan:
Dalam pseudocode, akan terlihat seperti:
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.
sumber
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
Cobalah online!
Cukup pendek tanpa builtin juga. (Ini bitwise-DAN dengan 1.)
sumber
7 , 18 karakter, 7 byte
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 digunakan
1
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
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 pengganti405
, 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
13
hal pertama yang dijalankan); yang kedua adalah023
yang memilih format output dan meminta input, dan dikonsumsi oleh operasi itu; yang ketiga dikonsumsi sebagai efek samping dari3
operasi (digunakan untuk membuang elemen stack selain menghasilkan output); yang keempat,,40
adalah 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
177
ke17
(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
Brain-Flak ,
2220 byteInilah 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
0
yang 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)
sumber
BitCycle ,
19 1716 byteCobalah 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:
sumber
Batch, 16 byte
Output 1 untuk ganjil, 0 untuk genap. Alternatif versi 16-byte juga berfungsi pada angka negatif:
17 byte untuk menghasilkan 1 untuk genap, 0 untuk ganjil:
sumber
(Input):(Output)
"Excel, 10 byte
Atau:
Untuk output dari:
sumber
?[A1]mod 2
; VBE anonim menjalankan fungsi jendela yang mengambil input dari[A1]
dan output ke jendela VBE langsung dengan0
(falsey) mewakili genap dan1
(kebenaran) mewakili ganjilJSFuck ,
968593846420 byteJSFuck 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!
sumber
alert(prompt()%2)
tampaknya menjadi 9384 karakter.[]["fill"]["constructor"]("return this%2")["call"]
.fill
dipilih 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.+
untuk menyimpan 77 byte lebih lanjut ;-) Dan saya pribadi berpikir menjawab di JSF baik-baik saja; pada dasarnya dialek JS.Bash + bc,
2114119 byteMembaca 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:
Sunting: disimpan 7 byte, terima kasih kepada @ ais523
Sunting 2: simpan 3 byte lagi berkat @Dennis
Sunting 3: simpan dua lagi berkat @Dennis
sumber
$1
) daripada menghabiskan byte membacanya dari stdin?bc<<<$1%2
.