Đây là chẵn hay lẻ?


65

Lưu ý: Chưa có thử thách kiểm tra chẵn lẻ vanilla (Có một C / C ++ nhưng không cho phép sử dụng các ngôn ngữ khác ngoài C / C ++ và các ngôn ngữ không phải vanilla khác cũng bị đóng), vì vậy tôi đang đăng một.

Cho một số nguyên dương, xuất ra tính chẵn lẻ của nó (tức là nếu số đó là số lẻ hoặc số chẵn) trong các giá trị trung thực / giả. Bạn có thể chọn kết quả trung thực tương ứng với đầu vào lẻ ​​hoặc thậm chí.


Ví dụ

Giả sử Đúng / Sai là chẵn và lẻ (Điều này là không bắt buộc, Bạn có thể sử dụng các giá trị Truthy / Falsy khác cho mỗi), một cách đáp ứng:

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

Bảng xếp hạng


2
Đây không phải là lần đầu tiên tôi nhầm lẫn toán học với tính chẵn lẻ tính toán ... sau tất cả, đây là một trang web !
Neil

Vì đây là một trong những câu hỏi ( 1 , 2 , 3 ) khá nhiều , nên có lẽ nên có một đoạn trích để xem tất cả các câu trả lời.
fnɛtɪk

4
@MikeBufardeci Bởi vì "danh mục" được đánh vần khác nhau dựa trên quốc gia bạn đến từ đâu. Đối với những người trong chúng ta ở Mỹ, đó là "danh mục". "Bảng dẫn" là văn hóa bất biến.
mbomb007

2
@tuskiomi Thử thách chỉ hỏi về số nguyên dương. (0 được coi là chẵn nhưng không tích cực)
Sở thích của Calvin

3
@LucioCrusca Chào mừng bạn đến với PPCG! Ý tưởng cơ bản của Code Golf là tạo ra một chương trình ở dạng ngắn nhất bạn có thể. Thử thách này là đọc một số nguyên (dương, khác không) và đầu ra nếu nó là số chẵn hoặc lẻ. Nếu bạn bối rối với điều gì đó, vui lòng truy cập The Nineteenth Byte và hỏi một cách tự do. Hoặc nếu bạn bối rối với chính sách hoặc quy tắc của trang web, hãy truy cập Meta . Cuối cùng, Cảm ơn bạn đã đăng ký vào cộng đồng của chúng tôi!
Matthew Roh

Câu trả lời:


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

Đầu ra này 1(là trung thực) cho đầu vào lẻ ​​và 0(đó là giả) cho đầu vào chẵn.

Hãy thử trực tuyến!

Bây giờ đây là kế hoạch ” (Một cố gắng giải thích)

Mã này đọc đầu vào thành biến i, thay thế nó bằng kết quả của modulo 2, và sau đó in nó.

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

27
Câu trả lời ArnoldC đầu tiên của tôi!
Luis Mendo

16
BULLSHIT YOU HAVE NO RESPECT FOR LOGIC GET TO THE CHOPPER
Bạch tuộc ma thuật Urn

17
GET YOUR ASS TO MARS...Tôi không có ý kiến.
Matthew Roh

12
Tôi tham gia cộng đồng này để nâng cao điều này. Làm tốt lắm, thưa ngài
Erik

2
Tôi đã tham gia cộng đồng này để nâng cấp bài đăng này. :)
Vada Poché

46

Brainfuck , 8 byte

+[,>,]<.

Đầu vào là đơn nhất. Đầu ra là 1 (trung thực) cho số lẻ và NUL (giả) cho số chẵn.

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

Chúng tôi bắt đầu bằng cách tăng ô hiện tại +để có thể vào vòng lặp while [,>,].

Trong mỗi lần lặp, ,đọc một byte từ STDIN, >tiến tới ô bên phải, sau đó ,đọc một byte khác từ STDIN. Khi đầu vào hết, trình thông dịch (dù sao trên TIO) sẽ đặt ô thành NUL thay thế. Khi điều đó xảy ra, điều kiện của vòng lặp while không còn được đáp ứng nữa và chúng ta thoát ra khỏi nó.

Gọi n là số nguyên đầu vào. Nếu có số lượng byte đầu vào chẵn - tức là, nếu n chẵn - các lần lặp n / 2 đầu tiên sẽ đọc hai 1 giây và lần lặp tiếp theo sẽ đọc hai NUL , để lại băng như sau.

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

<.retrocedes một ô và in nội dung của nó, gửi một byte NUL đến STDOUT.

Tuy nhiên, nếu có số lượng byte đầu vào lẻ, các lần lặp đầu tiên (n - 1) / 2 sẽ đọc hai lần 1 và lần lặp tiếp theo sẽ đọc một 1 và một NUL , để lại băng như sau.

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

<bây giờ sẽ chuyển sang một ô chứa byte / ký tự 1 , .in ra.


34

Toán học, 4 byte

OddQ

Cung cấp Truecho đầu vào lẻ ​​và Falsecho đầu vào thậm chí, ai biết?

Cũng có EvenQ, nhưng ai muốn gõ tất cả?


22
Ôi không. tích hợp lại.
Matthew Roh

7
@SIGSEGV Đó là Mathicala cho bạn. ;)
Kevin Cruijssen

6
2∣#&cũng hoạt động
Kelly Lowder

1
@KellyLowder đúng nhưng đó là 6 byte.
Martin Ender

Tại sao tên kết thúc bằng một Q?
Cyoce

26

Taxi , 1.482 1.290 1.063 1.029 1.009 byte

Tôi chưa bao giờ viết một chương trình trên Taxi trước đây và tôi là người mới lập trình nói chung, vì vậy có lẽ có nhiều cách tốt hơn để làm điều này. Tôi đã kiểm tra lỗi và quản lý để chơi nó một chút bằng cách thử các tuyến đường khác nhau có cùng kết quả. Tôi hoan nghênh bất kỳ và tất cả các sửa đổi.

Trả về 0cho chẵn và 1lẻ.

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".

Hãy thử trực tuyến!

Bạn nói đúng, thật tệ khi đọc mà không ngắt dòng. Đây là một phiên bản được định dạng:

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".

Đây là nỗ lực tốt nhất của tôi để giải thích logic:

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.

Không quay trở lại Taxi Garage gây ra đầu ra cho STDERR nhưng tôi vẫn ổn với điều đó .


7
Tôi luôn biết rằng goto là xấu xa
từ

2
Ngôn ngữ không chỉ yêu cầu sử dụng rộng rãi để đi đến, phương pháp phân nhánh duy nhất là bằng cách sử dụng các gói, đây chỉ là một tên khác cho goto.
Kỹ sư nướng bánh mì

23

Võng mạc , 8 byte

[02468]$

Một câu trả lời Retina cho đầu vào thập phân. Đây cũng là một giải pháp regex đơn giản, hoạt động trong hầu hết mọi hương vị regex. Khớp (và in 1) cho đầu vào chẵn và không khớp (và in 0) cho đầu vào lẻ.

Hãy thử trực tuyến!

Một thay thế, cũng cho 8 byte, sử dụng giai đoạn chuyển ngữ để biến tất cả các chữ số chẵn thành xđầu tiên (vì các giai đoạn chuyển ngữ có tích hợp cho các chữ số chẵn / lẻ):

T`E`x
x$

Tất nhiên, định dạng đầu vào ngắn nhất (thậm chí ngắn hơn unary ) sẽ là nhị phân trong trường hợp này, trong đó một biểu thức đơn giản 0$sẽ đủ. Nhưng vì thách thức về cơ bản là tìm kiếm chữ số nhị phân ít có ý nghĩa nhất, đầu vào nhị phân dường như tránh được thách thức thực tế.


1
+1 cho "TeX". Làm cho tôi muốn nhìn thấy một câu trả lời LaTeX ...
Brevan Ellefsen

@Richard Và do đó, nó không phải là một đầu vào hợp lệ cần được xử lý. (Mặc dù điều đó thực sự có nghĩa là nó được xử lý chính xác.)
Martin Ender


20

LOLCODE, 67 byte

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

Hàm trả về WIN(true) nếu số chẵn, khác (lẻ) nó sẽ trả về FAIL(false).

Gọi với C"123".


20

MATL , 5 3 byte

Bởi vì nội dung nhàm chán

:He

Điều này tạo ra một ma trận các giá trị khác 0 (là trung thực) cho đầu vào chẵn và một ma trận có số 0 ở mục dưới bên phải của nó (là sai) cho đầu vào lẻ.

Hãy thử trực tuyến! Mã chân trang là mộtif-elsenhánh để minh họa tính trung thực hoặc giả của kết quả. Loại bỏ chân trang đó sẽ ngầm hiển thị ma trận.

Giải trình

Hãy xem xét đầu vào 5như một ví dụ

:     % 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]

7
'Nội dung nhàm chán' HeAA, HeAA, HeAA. (Xin lỗi đó là một cách chơi chữ tồi)
Matthew Roh

3
@SIGSEGV HeHeHe
Luis Mendo

2
Cách tiếp cận thông minh! :)
Stewie Griffin

17

Java 8, 8 byte

n->n%2<1

Hãy thử nó ở đây.

Java 7, 30 byte

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

Hãy thử nó ở đây.

Đầu ra truecho số chẵn và falsesố lẻ


Nếu 1/0được phép thay vì true/false( không, hãy xem xét số phiếu ở đây ):

  • Java 8 (6 byte): n->n%2
  • Java 7 (25 byte): int c(int n){return n%2;}

22
Đâu là tất cả các công cụ Java dài dòng lố bịch? Tôi cảm thấy điều này ít nhất là 50 byte quá ngắn ...
Stewie Griffin

2
Ngày xửa ngày xưa có một thẻ gọi là trolling mã . Nhưng đây là một câu trả lời Java được chấp nhận rất hayđây là câu trả lời về môn đánh gôn . Và một số nữa .
Stewie Griffin

2
@lukeg Xin chào, mặc định là chương trình hoặc chức năng , trừ khi có thách thức khác. Điều đó có nghĩa là các ngôn ngữ như Java và C # chỉ được phép đăng chức năng (và nhập khẩu bắt buộc) thay vì toàn bộ lớp. Nếu người hỏi đặt câu hỏi cụ thể về chương trình, thì tôi thực sự phải bao gồm mã đường biên như lớp / giao diện và phương thức chính.
Kevin Cruijssen

1
@lukeg Nếu bạn muốn bắt đầu tự trả lời các thử thách, đây là một số mẹo chơi golf trong Java có thể thú vị để đọc qua. Chào mừng đến với PPCG! :)
Kevin Cruijssen

6
@StewieGriffin Có bạn đi! 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 codel / 16 byte

Mã nguồn

5njaampjhompppam

Thông dịch viên trực tuyến có sẵn ở đây.

Chương trình này trả về 0 nếu đầu vào là chẵn và 1 nếu đầu vào là số lẻ.

Các văn bản trên đại diện cho hình ảnh. Bạn có thể tạo hình ảnh bằng cách dán nó vào hộp văn bản trên trang thông dịch. Để thuận tiện, tôi đã cung cấp hình ảnh bên dưới với kích thước codel là 31 pixel. Lưới ở đó để dễ đọc và không phải là một phần của chương trình.

Giải trình

Chương trình này sử dụng nội dung modulo để xác định xem đầu vào là chẵn hay lẻ.

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]

Các codel màu xanh đậm ở phía dưới bên trái không bao giờ được truy cập và có thể được thay đổi thành bất kỳ màu nào khác ngoài màu của một codel lân cận. Tôi đã chọn màu xanh đậm vì tôi nghĩ nó trông đẹp với phần còn lại của chương trình. Codel đen trên cùng bên trái cũng có thể là màu trắng, nhưng không phải màu nào khác. Tôi đã chọn màu đen vì tôi nghĩ nó trông đẹp hơn.

Tôi đã cung cấp chương trình ở cả dạng hình ảnh và dạng văn bản vì không có sự đồng thuận rõ ràng về cách chấm điểm các chương trình của Piet. Hãy cân nhắc về các cuộc thảo luận meta.



14

JavaScript, 6 byte

Một chức năng ẩn danh:

n=>n&1

Cách khác với cùng độ dài:

n=>n%2

Cả hai sẽ trả về 0|1sẽ đáp ứng yêu cầu cho truthy|falseycác giá trị.

Dùng thử cả hai phiên bản trực tuyến


Theo câu trả lời Java, điều này không đáp ứng các yêu cầu. JavaScript có khác về vấn đề này không?
TheLethalCoder

4
Câu hỏi nêu rõ " Điều này là không bắt buộc, Bạn có thể sử dụng các giá trị Truthy / Falsy khác " 0|1, đúng không? @TheLethalCoder
insertusernamehere

1
Tôi không chắc liệu chúng có trong JavaScript không, đó là những gì tôi đã hỏi, hãy xem meta q / a để xem chúng có phải không. Tôi không đủ quen thuộc với JavaScript để biết.
TheLethalCoder

4
JavaScript được gõ lỏng lẻo hơn nhiều so với Java. Thật vui khi đối xử với hầu hết mọi thứ như bất kỳ loại nào. Cụ thể, thật vui khi coi các float là booleans (trong khi Java sẽ đưa ra lỗi thời gian biên dịch nếu bạn làm điều này). (Nhân tiện, bạn có thể không muốn biết lý do tại sao điều này trả về một số float chứ không phải là một số nguyên.)

1
Tốt :) Tôi không đủ quen để biết bản thân mình nên chỉ tự hỏi.
TheLethalCoder

12

Japt , 1 byte

v

Trả về 1số chẵn, 0lẻ.

Hãy thử trực tuyến!

Giải trình

Một trong những đặc điểm nổi bật của Japt là không giống như hầu hết các ngôn ngữ chơi gôn, các chức năng không có tính cố định; nghĩa là, bất kỳ hàm nào cũng có thể chấp nhận bất kỳ số lượng đối số nào. Điều này có nghĩa là đôi khi bạn có thể bỏ qua các đối số và Japt sẽ đoán bạn muốn gì. vtrên các số là một hàm chấp nhận một đối số và trả về 1nếu số đó chia hết cho đối số, khác 0. Ví dụ:

v3

Chương trình này sẽ xuất ra 1nếu đầu vào chia hết cho 3, và 0ngược lại. Nó chỉ xảy ra rằng đối số mặc định là 2, do đó giải quyết thách thức này trong một byte đơn.


Giải pháp thay thế 1 byte:

¢

¢chuyển đổi đầu vào thành một chuỗi cơ sở-2. Các -hcờ trả về char cuối cùng từ chuỗi.

Hãy thử trực tuyến!


11

Brainfuck , 12 byte

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

Điều này đòi hỏi một thông dịch viên với một băng tròn và các ô bao quanh. Một trên TIO có 65.536 ô 8 bit và đáp ứng các yêu cầu.

I / O tính bằng byte. Các đầu vào lẻ ​​ánh xạ tới 0x00 (giả mạo), thậm chí đầu vào thành một byte khác không (trung thực).

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

Chúng tôi bắt đầu bằng cách đọc một byte đầu vào với ,và thêm 2 vào giá trị của nó với ++. Chúng ta sẽ thấy sau tại sao tăng là cần thiết.

Tiếp theo, chúng ta nhập một vòng lặp tiến tới ô bên phải, thêm 2 vào nó và lặp lại quy trình trừ khi điều này đặt giá trị của ô thành 0 .

Ban đầu, tất cả các ô ngoại trừ ô nhập giữ 0 . Nếu đầu vào là số lẻ, thêm 2 vào nó sẽ không bao giờ hết. Tuy nhiên, sau khi lặp vòng băng 127 lần, lần lặp tiếp theo của vòng lặp sẽ đặt ô ở bên phải của ô nhập thành 128 × 2 = 0 (mod 256) , khiến vòng lặp kết thúc. >++lặp lại thân vòng lặp một lần nữa, vì vậy ô tiếp theo cũng được xóa và sau đó được in bằng ..

Mặt khác, nếu đầu vào là nn là chẵn, mã trước vòng lặp sẽ đặt ô đầu vào thành n + 2 . Sau khi lặp xung quanh băng (256 - (n - 2)) / 2 = (254 - n) / 2 lần, ô nhập liệu sẽ đạt 0 và ô bên phải sẽ giữ giá trị (254 - n) / 2 × 2 = 254 - n . Sau khi thêm 2 với >++, .sẽ in 256 - n = -n (mod 256) , khác không vì n khác không.

Cuối cùng, lưu ý rằng trường hợp thứ hai sẽ in 258 - n = 2 - n (mod n) nếu chúng tôi không tăng đầu vào trước vòng lặp, vì một vòng lặp nữa quanh băng sẽ được yêu cầu để loại bỏ ô đầu vào. Chương trình do đó sẽ thất bại cho đầu vào 2 .


11

Sinclair ZX81 BASIC 124 byte 114 byte 109 byte 57 50 byte BASIC được mã hóa

Theo nhận xét của Adám bên dưới, đây là ứng cử viên phát hành mới nhất:

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

Bây giờ nó sẽ PRINT 1cho chẵn và 0lẻ. Không lối thoát.

Dưới đây là các phiên bản cũ hơn của danh sách tượng trưng cho mục đích tham khảo:

 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

Đây là danh sách cũ (v0.01) để bạn có thể thấy những cải tiến mà tôi đã thực hiện không chỉ là danh sách mới này nhỏ hơn, mà còn nhanh hơn:

 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

Và đây là v0.02 (sử dụng chuỗi phụ của 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 đang hoạt động - đúng hoặc sai từ v1 / 2


1
Đây không phải là phức tạp kolmogorov . Bạn chỉ cần trả về 0 hoặc 1 cho bất kỳ đầu vào nào.
Adám

Câu hỏi có vẻ như đã được chỉnh sửa kể từ khi tôi thực hiện mục nhập ban đầu của mình vì nó <i> đọc </ i> giống như đúng / sai bắt buộc phải được trả lại. Như vậy, tôi có thể đơn giản hóa danh sách biểu tượng hơn nữa.
Shaun Bebbers

1
Tại sao bạn cần phải thoát về số không? Bạn có thể không PRINT (A-2*INT A/2)/A?
Adám

Trong câu hỏi ban đầu, đã được chỉnh sửa một cách hữu ích, nó đã chỉ định rằng giá trị 0không được tạo ra TRUEhoặc FALSEdo đó 0không được phép tạo ra kết quả sau đó tôi đã STOPping nó vào chương trình. Tôi có thể giải thích câu hỏi ban đầu vì nó được đăng bởi @SIGSEGV hơi quá theo nghĩa đen. Vâng, người ta có thể tối ưu hóa và tái cấu trúc, bạn đã đúng.
Shaun Bebbers


8

Võng mạc, 3 byte

11

Các dòng mới theo dõi là đáng kể. Đưa đầu vào trong unary. Đầu ra 1 cho số lẻ, không có gì cho số chẵn. Hãy thử trực tuyến!


Bạn biết đấy, bạn chỉ có thể sao chép câu trả lời đầy đủ (với định dạng cần thiết cho nguồn cấp dữ liệu theo dõi) từ TIO.
Martin Ender

@MartinEnder Không, tôi không biết.
Neil

Đó là đoạn trích thứ hai đến cuối cùng khi bạn tạo permalink.
Martin Ender

Ồ, đó là một đoạn hoàn toàn? Tôi chỉ thấy dòng tiêu đề.
Neil

@Neil nếu bạn nhấp vào đoạn trích, nó sẽ mở rộng nó và bạn sẽ thấy cơ thể
Dada

8

C ++, 25 byte

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

Điều này xác định một mẫu biến ( một cấu trúc giống như hàm ) với giá trị bằng với phép toán bitwise input&1. 0cho các giá trị chẵn, 1cho các giá trị lẻ. Giá trị được tính theo thời gian biên dịch.

Yêu cầu C ++ 14.

Hãy thử trực tuyến!


Woah, điều đó có vẻ thực sự thông minh. Tôi chưa bao giờ thấy một câu trả lời như thế này trước đây! Làm thế nào để bạn gọi điều này?
DJMcMayhem

@DJMcMayhem Đó là cách sử dụng đơn giản các mẫu biến của C ++ 14 . Tuy nhiên, đó không phải là tất cả thông minh: Một hàm đơn giản aproach ( int o(int v){return v&1;}) sẽ có cùng số lượng byte, với sự khác biệt là giá trị sẽ được tính khi chạy.
Cássio Renan

Tôi không nghĩ rằng điều này thực sự đủ điều kiện, vì mã sẽ chỉ được biên dịch thành trả về 1 hoặc trả về 0. Chạy lại mã được biên dịch lại sẽ không bao giờ mang lại kết quả khác, đó không phải là một chức năng theo cách này. Gần hơn với một hằng số.
Mã say rượu Khỉ

@DrunkenCodeMonkey thời gian đánh giá là không liên quan. Vấn đề là tôi có thể truyền đối số cho cấu trúc (cung cấp đầu vào) và nó sẽ trả về kết quả (đầu ra trả về). Theo quan điểm của bạn, không có chức năng nào có thể đủ điều kiện, vì nếu không có main()cấu trúc giống như, chương trình cũng sẽ chỉ được biên dịch thành một return 0hoặc thậm chí không biên dịch được. Điều này mâu thuẫn với meta bài tôi liên kết đến trong câu trả lời này.
Cássio Renan

1
Hàm lambda C ++ tiết kiệm 3 byte [](int x){return x%2;} Dùng thử trực tuyến
Johan du Toit

8

Bình thường, 3 2 byte

Tôi đã làm nó. Tôi đánh gôn vô chủ. Lần đầu tiên, đó là một giải pháp không tầm thường quản lý để có được byte cuối cùng đó!

!F

Sự thật về các giá trị chẵn (không bao gồm 0, nhưng điều đó không tích cực nên ...).

Giải trình:

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

Ví dụ !!2 = !0 = 1, và!!!3 = !!0 = !1 = 0

Tôi sẽ giữ thư viện các giải pháp 3 byte của mình ở đây bên dưới.

"Có một câu trả lời khác với nhiều giải pháp 3 byte, nhưng nó vẫn chưa hoàn thành. Hãy thêm một vài điều nữa:

@U2

[0,1]Lập chỉ mục vào danh sách theo mô-đun, đưa ra các giá trị trung thực trên đầu vào lẻ.

}2P

Là 2 trong các thừa số nguyên tố của đầu vào? (Sự thật về thậm chí)

ti2

Là GCD của 2 và đầu vào 2? (Sự thật về thậm chí)

gx1

XOR-ing đầu vào với 1 không làm giảm nó? (Sự thật về thậm chí)

q_F

Về cơ bản Q == Q*-1^Q, nơi Q là đầu vào, nhưng được thực hiện thông qua một vòng lặp. (Sự thật về thậm chí)

_FI

Giống như trên.

g^_

Dịch sang Q <= -Q^Q(Sự thật về thậm chí)

Lưu ý rằng bất kỳ giải pháp nào ở trên có liên quan gsẽ hoạt động với sự <thật sai lệch.)


1
Vâng, điều đó khá thông minh :)
Chấn thương kỹ thuật số

7

C #, 8 byte

n=>n%2<1

Biên dịch thành a Func<int, bool>.

Hoặc nếu một chức năng ẩn danh không được phép, phương thức này cho 21 byte:

bool p(int n)=>n%2<1;

@obarakon Không có trong C #, hãy xem câu trả lời này trên meta . Về cơ bản if (1)không biên dịch.
TheLethalCoder

không có if (1)trong mã của bạn?
BẠN

1
@YOU Đúng, đọc bài viết meta để hiểu ý của tôi là gì.
TheLethalCoder

2
@YOU, định nghĩa được chấp nhận (trên trang web này) của giá trị trung thực / falsey là: Nếu if (x)đánh giá là đúng thì đó xlà giá trị trung thực. Nếu nó đánh giá là sai thì đó là false. Vì vậy, trong mã giả : if x, disp(true), else disp(false). Nếu không biên dịch được thì xkhông thể sử dụng được. Trong MATLAB và một số ngôn ngữ khác, mọi thứ khác không được coi là đúng, trong khi 0falseđược coi là sai. Vì vậy, chuỗi Hellolà một giá trị trung thực trong MATLAB. Tuy nhiên, một số ngôn ngữ yêu cầu giá trị phải là giá trị boolean (trường hợp ở đây), do đó nó phải được chuyển đổi thành boolean, sử dụng <1.
Stewie Griffin

Tôi hiểu rồi. cảm ơn đã giải thích
BẠN

7

Bình thường, 3

Tôi đã mong đợi pyth có một tích hợp 1 hoặc 2 byte cho việc này. Thay vào đó, đây là những giải pháp tốt nhất tôi có thể tìm thấy:

%Q2

hoặc là

.&1

hoặc là

e.B

2
Không phải là một nội trang, nhưng có một giải pháp 2 byte .
Steven H.

7

TIS-100, 39 byte

Tất nhiên, đây chính xác hơn là một chương trình dành cho kiến ​​trúc Nút thực thi cơ bản T21, được mô phỏng bởi trình giả lập TIS-100.

Tôi sẽ giới thiệu cho bạn câu trả lời này để được giải thích sâu sắc về cách tính điểm cho các chương trình TIS-100, cũng như cấu trúc của chúng.

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

Giải trình:

@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

Trong mã giả, nó sẽ trông giống như:

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

T21 không có loại boolean hoặc giá trị trung thực / giả, vì vậy chương trình trả về -1 cho số lẻ và 0 cho số chẵn, trừ khi đầu vào trước là số lẻ, trong trường hợp đó, nó trả về -1 cho số chẵn và 0 cho số lẻ các con số - nếu thực tế đó làm bạn bối rối, đây là câu trả lời toàn chương trình, vì vậy bạn chỉ cần khởi động lại T21 giữa các lần sử dụng.


Tôi chỉ nghĩ về TIS-100, trò chơi giải đố Zachtronics, vì tôi muốn mua nó vào tuần trước. TIS có phải là ngôn ngữ thực tế không, hay nó chỉ tồn tại trong trò chơi video đó?
seshoumara

@seshoumara Theo hiểu biết của tôi, nó chỉ tồn tại trong trò chơi. Toàn bộ kiến ​​trúc của máy móc trong TIS là một điển hình, và ngôn ngữ theo kiểu hội này nối vào đó.
steenbergh

Tôi có thể xác nhận, nó chỉ tồn tại trong trò chơi (và trên thực tế, ngay cả trong vũ trụ, nó là một kiến ​​trúc kỳ lạ và kỳ quái). Tôi đã viết câu trả lời Turtman liên kết đến như thể có thiết bị TIS thực sự, nhưng tôi chỉ làm điều đó trong tính cách cho vui.
undergroundmonorail

2
@Blacksilver Thử thách thực sự, tôi nghĩ, sẽ là đưa ra câu trả lời của Spacechem!
Người hướng dẫn

1
Tôi đã triển khai trình giả lập TIS cho TIO, vì vậy bây giờ bạn có thể dùng thử trực tuyến!
Phlarx

6

Thạch , 1 byte

Hãy thử trực tuyến!

Chỉ cần một nội dung khác.

Đối với những người không biết Jelly: nó có khá nhiều khả năng để suy ra các đoạn mã bị thiếu, do đó không có nhiều sự khác biệt về cú pháp giữa một đoạn mã, một hàm và một chương trình đầy đủ; trình thông dịch sẽ tự động thêm mã để nhập các đối số thích hợp và đưa ra kết quả. Điều đó khá tiện lợi khi xử lý các quy tắc PPCG, cho phép các chức năng và chương trình nhưng không cho phép các đoạn mã. Trong liên kết TIO, tôi coi đây là một hàm và chạy nó trên mỗi số nguyên từ 1 đến 20, nhưng nó cũng hoạt động như một chương trình đầy đủ.

Thạch , 2 byte

&1

Hãy thử trực tuyến!

Nó cũng khá ngắn mà không có nội dung. (Đây là bitwise-AND với 1.)


2
Tất cả những ngôn ngữ này có vẻ hơi gian lận cho những câu hỏi này lol
Drunken Code Monkey

6

7 , 18 ký tự, 7 byte

177407770236713353

Hãy thử trực tuyến!

7 không có bất cứ điều gì tương tự như một câu lệnh if bình thường và có nhiều hơn một cách thành ngữ để biểu thị một boolean. Như vậy, thật khó để biết điều gì được coi là sự thật và chim ưng, nhưng chương trình này sử dụng 1chuỗi lẻ và chuỗi rỗng cho các giá trị chẵn (giá trị trung thực và falsey cho Perl, trong đó 7 thông dịch viên được viết). (Thật dễ dàng để thay đổi điều này; đầu ra lẻ được chỉ định trước 7 đầu tiên, đầu ra chẵn được chỉ định giữa hai 7 đầu tiên. Tuy nhiên, tôi có thể cần thay đổi định dạng đầu ra để xử lý các loại đầu ra khác, tuy nhiên, tôi đã sử dụng hai loại đầu ra đầu ra khác biệt ngắn nhất ở đây.)

7 sử dụng mã hóa bát phân nén trong đó ba byte nguồn đại diện cho tám byte chương trình, do đó 18 ký tự nguồn được biểu thị bằng 7 byte trên đĩa.

Giải trình

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

Giống như nhiều định dạng đầu ra, "số nguyên đầu ra" hoàn tác bất kỳ số mức thoát nào trước khi xuất; do đó 40, kết hợp thực hiện một hoạt động trao đổi và thoát, có thể được sử dụng thay cho 405hoạt động hoán đổi (là một hoạt động hoán đổi và thoát theo sau là một cảnh không có). Nếu bạn đang sử dụng định dạng đầu ra không ổn định đối với thoát, bạn cần 405có đầy đủ ở đó. (Ngẫu nhiên, lý do tại sao chúng ta cần thoát chuỗi định dạng ban đầu là vì nếu đầu ra đầu tiên chứa các ký tự không thể biểu thị, nó sẽ tự động buộc định dạng đầu ra 7. Thoát khỏi nó loại bỏ các ký tự không thể biểu thị và cho phép chọn định dạng 0.)

Trong sáu yếu tố ngăn xếp ban đầu, trên cùng là chương trình chính (và được sử dụng bởi 13thứ đầu tiên chạy); thứ hai là 023chọn định dạng đầu ra và yêu cầu đầu vào, và được sử dụng bởi thao tác đó; thứ ba được sử dụng như một tác dụng phụ của 3hoạt động (nó được sử dụng để loại bỏ các phần tử ngăn xếp ngoài việc tạo ra đầu ra); thứ tư, 40là phần thân của vòng lặp (và được tiêu thụ bởi 5vòng lặp thực thi); và thứ năm và thứ sáu được hoán đổi một số lần bằng với đầu vào (do đó kết thúc ở vị trí ban đầu của chúng nếu đầu vào là chẵn hoặc ở vị trí của nhau nếu đầu vào là số lẻ).

Bạn có thể loại bỏ một ký tự bằng cách thay đổi vị trí dẫn 177đến 17(và dựa vào phần tử ngăn xếp thứ sáu trống rỗng), nhưng điều đó sẽ thay đổi tính chẵn lẻ của các kết quả đầu ra thành một phương thức ít thành ngữ hơn so với số lẻ là đúng và nó không lưu toàn bộ một byte (nguồn vẫn dài bảy byte). Do đó, tôi quyết định sử dụng hình thức đầu ra tự nhiên hơn, vì nó không ghi được điểm nào tệ hơn.


6

Brain-Flak , 22 20 byte

Dưới đây là câu trả lời thú vị trong Brain-Flak, bạn cũng nên kiểm tra

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

Hãy thử trực tuyến!

Giải trình

Để bắt đầu, chúng tôi sẽ tạo một bản sao của đầu vào của chúng tôi với (({})).

Bản sao dưới cùng sẽ phục vụ như một giá trị trung thực trong khi bản sao trên cùng sẽ được sử dụng để xử lý thực tế. Điều này được thực hiện bởi vì chúng ta cần đầu vào ở trên cùng và nó khá cồng kềnh (hai byte thêm!) Để đặt 1 bên dưới đầu vào.

Sau đó, chúng tôi bắt đầu một vòng lặp {({}[()]<>)}. Đây là một sửa đổi đơn giản trên vòng đếm ngược tiêu chuẩn chuyển đổi ngăn xếp mỗi khi nó giảm.

Vì có hai ngăn xếp, một số chẵn sẽ kết thúc ở đầu ngăn xếp mà nó bắt đầu trong khi một số lẻ sẽ kết thúc ở ngăn xếp đối diện. Giá trị được sao chép sẽ giữ nguyên vị trí và do đó sẽ đóng vai trò là điểm đánh dấu nơi chúng tôi bắt đầu.

Khi chúng ta thực hiện xong vòng lặp, chúng ta có một giá trị 0(ban đầu là đầu vào) nằm trên giá trị trung thực (bản sao của đầu vào) hoặc giá trị giả (ngăn xếp trống). Chúng tôi cũng có giá trị ngược lại trên ngăn xếp khác.

Chúng ta cần loại bỏ 0cái có thể được loại bỏ bằng {}hoặc <>. Cả hai dường như hoạt động và cho kết quả ngược lại, tuy nhiên {}gây ra giá trị sai lệch cho 0, khi nó sẽ trả về giá trị trung thực. Điều này là do giá trị "trung thực" của chúng tôi là bản sao của đầu vào và số 0 là đầu vào duy nhất có thể bị làm sai.

Vấn đề này được giải quyết bằng cách kết thúc chương trình với <>thay vào đó.

(Tất nhiên theo đặc điểm kỹ thuật tôi không phải hỗ trợ bằng 0 nhưng đưa ra hai tùy chọn tôi muốn hỗ trợ)


6

BitCycle , 19 17 16 byte

?ABv
 / \ <
!+ <

Hãy thử trực tuyến!

Argh, tôi cảm thấy như có một giải pháp 18 byte trôi nổi ngoài tầm với :( Haha! -2 byte bằng cách sử dụng một +bit để chuyển hướng đến từ các hướng khác nhau.

Điều này vẫn có cảm giác như có quá nhiều khoảng trắng trong đó (toàn bộ 6 byte!)

Giải trình:

?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

5

Mẻ, 16 byte

@cmd/cset/a%1%%2

Đầu ra 1 cho số lẻ, 0 cho số chẵn. Phiên bản 16 byte thay thế cũng hoạt động trên các số âm:

@cmd/cset/a"%1&1

17 byte cho đầu ra 1 cho chẵn, 0 cho lẻ:

@cmd/cset/a"~%1&1

Chương trình của bạn chỉ lặp lại kết quả MOD, không chính xác. Câu hỏi cho biết định dạng đầu ra phải là " (Input):(Output)"
stevefestl

5

Excel, 10 byte

=MOD(A1,2)

Hoặc là:

=ISODD(A1)

Đối với đầu ra của:

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


1
Tôi chưa bao giờ thấy excel trong mã golf ...
lập trình

1
Phiên bản Excel VBA thay thế của mã này , ?[A1]mod 2; một hàm VBE ẩn danh có chức năng cửa sổ lấy đầu vào [A1]và đầu ra cho cửa sổ VBE ngay lập tức với 0(falsey) đại diện cho chẵn và 1(trung thực) đại diện cho lẻ
Taylor Scott

5

JSFuck , 9685 9384 6420 byte

JSFuck là một phong cách lập trình bí truyền và giáo dục dựa trên các phần nguyên tử của JavaScript. Nó chỉ sử dụng sáu ký tự khác nhau để viết và thực thi mã.

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

Đầu ra 1 cho số lẻ và 0 cho số chẵn.

Hãy thử trực tuyến!

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


Tôi nghĩ bạn có thể xuất 0/1 thay vì đúng / sai. alert(prompt()%2)dường như là 9384 ký tự.
Sản xuất ETH

Tôi đánh gôn này xuống còn 6497 ký tự . Điều này bằng với JavaScript sau : []["fill"]["constructor"]("return this%2")["call"]. fillđã được chọn vì chỉ tốn 81 ký tự, ít nhất trong tất cả các phương thức mảng. Ngoài ra, bạn có thể lập luận rằng JSFuck không phải là một ngôn ngữ riêng biệt, mà là một tập hợp con của JavaScript.
Luke

@Luke Tôi không thể chạy nó trong đoạn mã và vì đây chỉ là một câu trả lời đùa, tôi sẽ gắn bó với phiên bản dựa trên cảnh báo trừ khi bạn có thể giúp tôi biết mình đang làm gì sai.
powelles

@Luke Thay thế không gian bằng a +để tiết kiệm thêm 77 byte ;-) Và cá nhân tôi nghĩ rằng việc trả lời trong JSF là ổn; về cơ bản nó là một phương ngữ của JS.
Sản xuất ETH

Mã tôi đã dán giống như một tên hàm. Chỉ cần nối các dấu ngoặc đơn và bao gồm các đối số trong đó.
Luke

5

Bash + bc, 21 14 11 9 byte

bc<<<$1%2

Đọc đầu vào dòng lệnh, mở rộng giá trị vào chuỗi bằng thao tác mod và chuyển chuỗi thành bc để tính toán. Đầu ra 1 cho số lẻ, 0 cho số chẵn.

Các trường hợp thử nghiệm:

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

Chỉnh sửa: đã lưu 7 byte nhờ @ ais523
Chỉnh sửa 2: lưu thêm 3 byte nhờ @Dennis
Chỉnh sửa 3: đã lưu hai byte khác nhờ @Dennis


2
Chào mừng đến với trang web!
DJMcMayhem

Có lẽ bạn có thể lấy đầu vào từ một đối số dòng lệnh để bash (chẳng hạn như $1) thay vì chi tiêu byte đọc nó từ stdin?

@ ais523: Gợi ý tuyệt vời! Tôi nên nghĩ về việc thực hiện nó trong một kịch bản thay vì chỉ trên dòng lệnh.
Christopher Forge

Bạn có thể rút ngắn điều này để bc<<<$1%2.
Dennis

@Dennis: Cảm ơn! Tôi đã thử điều đó trước đó, nhưng không thể hiểu đúng cú pháp.
Christopher Forge
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.