Это четное или нечетное?

65

Примечание. Ванильного теста на четность еще не было (есть C / C ++, но он не позволяет использовать языки, отличные от C / C ++, а другие, не являющиеся ванильными, тоже в основном закрыты), поэтому я пишу один.

Если задано положительное целое число, выведите его четность (т. Е. Если число нечетное или четное) в значениях «истина / ложь». Вы можете выбрать, соответствуют ли достоверные результаты нечетным или четным входным данным.


Примеры

Предполагая True / False как четное и нечетное (это не обязательно, вы можете использовать другие значения Truthy / Falsy для каждого), ответно:

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

Leaderboard

Мэтью Ро
источник
2
Это не первый раз, когда я путаю математическое с вычислительной четностью ... в конце концов, это кодовый сайт!
Нил
Поскольку это в значительной степени один из этих ( 1 , 2 , 3 ) вопросов, он, вероятно, должен иметь фрагмент, чтобы увидеть все ответы.
fəˈnɛtɪk
4
@MikeBufardeci Потому что «каталог» пишется по-разному в зависимости от того, из какой вы страны. Для тех из нас, в США, это «каталог». «Таблица лидеров» является культурно-инвариантной.
mbomb007
2
@tuskiomi Задача касается только положительных целых чисел. (0 считается четным, но не положительным)
Увлечения Кельвина,
3
@LucioCrusca Добро пожаловать в PPCG! Основная идея Code Golf состоит в том, чтобы сделать программу в максимально короткой форме. Задача состоит в том, чтобы прочитать целое число (положительное, ненулевое) и вывести его, если оно четное или нечетное. Если вы что-то путаете, пожалуйста, посетите Девятнадцатый Байт и спросите свободно. Или, если вас смущают политика или правила сайта, перейдите в Meta . Наконец, спасибо за подписку на наше сообщество!
Мэтью Ро,

Ответы:

112

ArnoldC , 299 283 байта

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

Это выводит 1(что верно) для нечетного ввода и 0(что неверно) для четного ввода.

Попробуйте онлайн!

« Теперь это план » (попытка объяснения)

Код читает входные данные в переменную i, заменяет их результатом по модулю 2, а затем печатает его.

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
Мой первый ответ ArnoldC!
Луис Мендо
16
BULLSHIT YOU HAVE NO RESPECT FOR LOGIC GET TO THE CHOPPER
Волшебная Осьминог Урна
17
GET YOUR ASS TO MARS...У меня нет слов.
Мэтью Ро
12
Я присоединился к этому сообществу, чтобы поддержать это. Молодцы, сэр
Эрик
2
Я присоединился к этому сообществу, чтобы проголосовать за этот пост. :)
Вада Поче
46

брейкфук , 8 байт

+[,>,]<.

Ввод одинарный. Выход - 1 (истинно) для нечетных чисел и NUL (ложно) для четных чисел.

Попробуйте онлайн!

Как это устроено

Мы начинаем с увеличения текущей ячейки, +чтобы иметь возможность войти в цикл while [,>,].

В каждой итерации ,читает байт из STDIN, >перемещается в ячейку вправо, а затем ,читает другой байт из STDIN. Когда ввод исчерпан, интерпретатор (во всяком случае, на TIO) установит для ячейки значение NUL . Как только это происходит, условие цикла while больше не выполняется, и мы выходим из него.

Пусть n будет входным целым числом. Если есть четное количество входных байтов, т. Е. Если n четно, то первые n / 2 итерации будут читать две 1 , а следующая итерация будет читать два NUL , оставляя ленту следующим образом.

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

<.заменяет одну ячейку и печатает ее содержимое, отправляя байт NUL в STDOUT.

Однако, если есть нечетное количество входных байтов, первые (n - 1) / 2 итерации будут читать две 1 , а следующая итерация будет читать одну 1 и одну NUL , оставляя ленту следующим образом.

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

<теперь будет ретроспективно к ячейке, содержащей байт / символ 1 , который .печатает.

Деннис
источник
34

Mathematica, 4 байта

OddQ

Дает Trueдля нечетных входов и Falseдля четных входов, кто знал?

Есть также EvenQ, но кто хотел бы напечатать все это?

Мартин Эндер
источник
22
О нет. Снова встроенные.
Мэтью Ро
7
@SIGSEGV Это Mathematica для тебя. ;)
Кевин Круйссен
6
2∣#&работает также
Келли Лоудер
1
@KellyLowder правда, но это 6 байтов.
Мартин Эндер,
Почему имя заканчивается на Q?
Cyoce
26

Такси , 1 482 1 290 1 063 1 029 1 009 байт

Я никогда раньше не писал программы на Такси, и я новичок в программировании в целом, поэтому, возможно, есть лучшие способы сделать это. Я проверил на ошибки и сумел немного поиграть в гольф, пробуя разные маршруты с одинаковым результатом. Я приветствую любую ревизию.

Возвращает 0для четных и 1нечетных.

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

Попробуйте онлайн!

Вы правы, это ужасно читать без разрывов строк. Вот отформатированная версия:

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

Вот моя лучшая попытка объяснить логику:

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.

Если вы не вернетесь в «Такси Гараж», вы получите STDERR, но я в порядке .

Инженер Тост
источник
7
Я всегда узнал , что Гото это зло
aross
2
Язык не только требует интенсивного использования go to, единственный метод ветвления - использование планов, которые являются просто другим названием goto.
Инженер Тост
23

Сетчатка , 8 байт

[02468]$

Ответ Retina для десятичного ввода. Это также простое решение для регулярных выражений, которое работает практически с любым видом регулярных выражений. Соответствует (и печатает 1) для четных входов и не совпадает (и печатает 0) для нечетных входов.

Попробуйте онлайн!

Альтернатива, также для 8 байтов, использует этап транслитерации, чтобы превратить все четные цифры в xпервую очередь (потому что этапы транслитерации имеют встроенные для четных / нечетных цифр):

T`E`x
x$

Конечно, самый короткий входной формат (даже короче, чем унарный ) будет двоичным в этом случае, где 0$будет достаточно простого регулярного выражения . Но поскольку задача состоит в том, чтобы найти двоичную цифру с наименьшей значимостью, двоичный ввод, кажется, обходит реальную проблему.

Мартин Эндер
источник
1
+1 за "TeX". Хочется увидеть ответ от LaTeX ...
Бреван Эллефсен
@Richard И, следовательно, это недопустимый ввод, который нужно обрабатывать. (Хотя это на самом деле означает, что все равно обрабатывается правильно.)
Мартин Эндер
20

Python, 11 10 байт

-1 байт благодаря Гриффину

1 .__and__

Попробуйте онлайн!
Используя побитовый and, возвращает 0для четного и 1нечетного

прут
источник
2
1 .__and__на один символ короче
Гриффин
20

LOLCODE, 67 байт

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

Функция, которая возвращает WIN(true), если число четное, иначе (нечетное) возвращает FAIL(false).

Позвони с C"123".

devRicher
источник
20

MATL , 5 3 байта

Потому что встроенные скучные

:He

Это выводит матрицу ненулевых значений (что является правдой) для четного ввода и матрицу с нулем в правом нижнем углу (что неверно) для нечетного ввода.

Попробуйте онлайн! Кодif-elseнижнегоколонтитула являетсяветвью, чтобы проиллюстрировать правдивость или ложность результата. Удаление этого нижнего колонтитула неявно отобразит матрицу.

объяснение

Рассмотрим ввод 5в качестве примера

:     % 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
«Встроенные скучные» HeAA, HeAA, HeAA (извините, это был плохой каламбур)
Мэтью Ро
3
@SIGSEGV HeHeHe
Луис Мендо
2
Умный подход! :)
Стьюи Гриффин
17

Java 8, 8 байт

n->n%2<1

Попробуй это здесь.

Java 7, 30 байт

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

Попробуй это здесь.

Выходы trueдля четных и falseнечетных чисел


Если 1/0бы было разрешено вместо true/false( это не так, учитывая количество голосов здесь ):

  • Java 8 (6 байт): n->n%2
  • Java 7 (25 байт): int c(int n){return n%2;}
Кевин Круйссен
источник
22
Где все эти смехотворно многословные Java-вещи? Я чувствую, что это по крайней мере на 50 байтов слишком мало ...
Стьюи Гриффин
2
Когда-то был тег под названием код троллинг . Но это один является очень хорошим общепринятым Java-ответ и здесь есть код-гольф ответ. И еще немного .
Стьюи Гриффин
2
@lukeg Привет, по умолчанию это программа или функция , если в запросе не указано иное. Это означает, что языки, такие как Java и C #, могут публиковать только функцию (и требуемый импорт) вместо всего класса. Если спрашивающий задаст конкретный вопрос о программе, тогда мне действительно нужно включить пограничный код, такой как класс / интерфейс и метод main.
Кевин Круйссен,
1
@lukeg Если вы хотите сами начать отвечать на вызовы, вот несколько советов по игре в гольф на Java, которые может быть интересно прочитать. Добро пожаловать в PPCG! :)
Кевин Круйссен
6
@ StewieGriffin Вот, пожалуйста! int o(int n){return java.util.stream.IntStream.of(n).map(n->n%2).filter(n==0).fi‌​ndAny().isPresent();‌​}
Оливье Грегуар,
16

Пит, 15 кодов / 16 байтов

Исходный код

5njaampjhompppam

Онлайн переводчик доступен здесь.

Эта программа возвращает 0, если ввод четный, и 1, если ввод нечетный.

Текст выше представляет изображение. Вы можете создать изображение, вставив его в текстовое поле на странице переводчика. Для удобства я предоставил изображение ниже, где размер кодека составляет 31 пиксель. Сетка предназначена для удобства чтения и не является частью программы.

объяснение

Эта программа использует встроенный модуль по модулю, чтобы определить, является ли ввод четным или нечетным.

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]

Темно-синие кодеки в левом нижнем углу никогда не посещаются и могут быть изменены на любой цвет, отличный от цвета соседнего коделя. Я выбрал темно-синий, так как думаю, что он хорошо смотрится с остальной частью программы. Верхний левый черный кодек также может быть белым, но не любого другого цвета. Я выбрал черный, поскольку я думаю, что это выглядит лучше.

Я предоставил программу как в графической, так и в текстовой форме, поскольку нет единого мнения о том, как оценивать программы Пиета. Не стесняйтесь взвешивать мета-обсуждение.

Майк Буфардечи
источник
14

JavaScript, 6 байт

Анонимная функция:

n=>n&1

Альтернативно с такой же длиной:

n=>n%2

Оба вернутся, 0|1что должно соответствовать требованию к truthy|falseyзначениям.

Попробуйте обе версии онлайн

insertusernamehere
источник
Согласно ответу Java это не соответствует требованиям. Отличается ли JavaScript в этом отношении?
TheLethalCoder
4
Вопрос ясно гласит: « Это не обязательно, вы можете использовать другие значения Истина / Ложь », которые 0|1не так ли? @TheLethalCoder
имя пользователя здесь
1
Я не уверен, что они написаны на JavaScript, это то, о чем я спрашивал, посмотрите мета q / a, чтобы увидеть, есть ли они. Я не достаточно знаком в JavaScript, чтобы знать.
TheLethalCoder
4
JavaScript гораздо слабее типизирован, чем Java. Он рад относиться практически ко всему как к любому типу. В частности, он рад рассматривать float как логическое значение (тогда как Java сделает ошибку времени компиляции, если вы сделаете это). (Кстати, вы, возможно, не хотите знать, почему это возвращает число с плавающей точкой, а не целое число.)
1
Хорошо :) Я не был достаточно знаком, чтобы знать себя, поэтому просто удивлялся.
TheLethalCoder
12

Japt , 1 байт

v

Возвращает 1для четных чисел, 0для нечетных.

Попробуйте онлайн!

объяснение

Одна из характерных особенностей Japt заключается в том, что в отличие от большинства языков игры в гольф функции не имеют фиксированной арности; то есть любая функция может принимать любое количество аргументов. Это означает, что вы можете иногда опускать аргументы, и Japt будет угадывать, что вы хотите. von числа - это функция, которая принимает один аргумент и возвращает, 1если число делится на аргумент, в противном случае 0. Например:

v3

Эта программа выведет, 1если вход делится на 3, и в 0противном случае. Так уж получилось, что аргумент по умолчанию - 2это решение этой задачи одним байтом.


Альтернативное 1-байтовое решение:

¢

¢преобразует входные данные в строку base-2. -hФлаг возвращает последний символ из строки.

Попробуйте онлайн!

Оливер
источник
11

брейкфук , 12 байт

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

Для этого требуется переводчик с круглой лентой и ячейками, которые обертывают вокруг. Тот на TIO имеет 65 536 8-битных ячеек и удовлетворяет требованиям.

Ввод / вывод в байтах. Нечетные входные данные отображаются в 0x00 (ложно), четные входные данные в ненулевой байт (правда).

Попробуйте онлайн!

Как это устроено

Мы начнем с чтения байта ввода с ,и добавления 2 к его значению с помощью ++. Позже мы увидим, почему увеличение необходимо.

Затем мы вводим цикл, который перемещается к ячейке справа, добавляем к ней 2 и повторяем процесс, если только для этого значения ячейки не установлено значение 0. .

Первоначально все ячейки, кроме входной, содержат 0 . Если ввод нечетный, добавление 2 к нему никогда не обнулит его. Однако после циклического повторения ленты 127 раз, следующая итерация цикла установит ячейку справа от входной ячейки равной 128 × 2 = 0 (мод 256) , что приведет к завершению цикла. >++повторяет тело цикла еще раз, поэтому следующая ячейка также обнуляется, а затем печатается с помощью ..

С другой стороны, если входное значение равно n, а n четное, код перед циклом устанавливает для входной ячейки значение n + 2 . После зацикливания ленты (256 - (n - 2)) / 2 = (254 - n) / 2 раза, входная ячейка достигнет 0 , а справа от нее будет храниться значение (254 - n) / 2. × 2 = 254 - n . После добавления 2 с >++, .выведите 256 - n = -n (mod 256) , что не равно нулю, так как n не равно нулю.

Наконец, обратите внимание, что во втором случае будет выведено 258 - n = 2 - n (mod n), если мы не увеличиваем вход перед циклом, поскольку для обнуления входной ячейки потребуется еще один цикл вокруг ленты. Программа, таким образом, потерпит неудачу для ввода 2 .

Деннис
источник
11

Sinclair ZX81 BASIC 124 байта 114 байтов 109 байтов 57 50 токенов BASIC байтов

В соответствии с комментариями Адама ниже, вот последний релиз кандидата:

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

Это будет теперь PRINT 1для четных и 0нечетных. Ноль выходов.

Вот более старые версии символического списка для справочных целей:

 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

Вот старый (v0.01) список, так что вы можете увидеть улучшения, которые я сделал, так как этот новый список не только меньше, но и быстрее:

 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

А вот v0.02 (с использованием подстрок 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 в действии - истина или ложь от v1 / 2

Шон Бебберс
источник
1
Это не колмогоров-сложность . Вам просто нужно вернуть 0 или 1 для любого данного ввода.
Адам
Вопрос выглядит так, как будто он был отредактирован с тех пор, как я сделал свою первоначальную запись, так как он <i> read </ i>, как true / false, должен быть возвращен. Таким образом, я могу упростить символическое перечисление дальше.
Шон Бебберс,
1
Зачем вам нужно выходить на ноль? Вы не можете просто PRINT (A-2*INT A/2)/A?
Адам
В первоначальном вопросе, который был тщательно отредактирован, в нем указывалось, что значение 0не должно давать a TRUEили FALSE, следовательно, поскольку 0не предполагалось, что оно будет давать результат, тогда я STOPвыполнял команду ping для программы. Я, вероятно, истолковал оригинальный вопрос, так как он был опубликован @SIGSEGV слишком буквально. Да, можно оптимизировать и рефакторинг, вы правы.
Шон Бебберс
10

05AB1E , 1 байт

È

Достаточно самоисследованный. Возвращаетa % 2 == 0

Попробуйте онлайн!

Okx
источник
Éэто лучший выбор, по моему личному мнению; ребячество.
Волшебный Осьминог Урна
7
Я предполагаю, что Éвозвращается a % 2 == 1.
SIGSTACKFAULT
1
Это само собой разумеется, если вы уже знаете оператора
MilkyWay90
8

Сетчатка, 3 байта

11

Трейлинг новой строки является значительным. Принимает участие в одинарных. Выходы 1 для нечетных чисел, ничего для четных чисел. Попробуйте онлайн!

Нил
источник
Вы знаете, вы можете просто скопировать полный ответ (с необходимым форматированием для конечного перевода строки) из TIO.
Мартин Эндер
@MartinEnder Нет, я не знал.
Нил
Это второй за последним фрагмент, когда вы генерируете постоянную ссылку.
Мартин Эндер
О, это целый фрагмент? Я просто вижу строку заголовка.
Нил
@Neil, если вы нажмете на фрагмент, он развернется и вы увидите тело
Dada
8

C ++, 25 байт

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

Это определяет переменный шаблон ( функциональную конструкцию ) со значением, равным побитовой операции input&1. 0для четных значений, 1для нечетных значений. Значение рассчитывается во время компиляции.

Требуется C ++ 14.

Попробуйте онлайн!

Кассио Ренан
источник
Вау, это кажется действительно умным. Я никогда не видел такой ответ раньше! Как вы это называете?
DJMcMayhem
@DJMcMayhem Это простое использование шаблонов переменных C ++ 14 . Однако не все так просто: простая функция aproach ( int o(int v){return v&1;}) будет занимать столько же байтов, с той разницей, что значение будет вычисляться во время выполнения.
Кассио Ренан
Я не думаю, что это на самом деле подходит, так как код будет просто скомпилирован в return 1 или return 0. Повторный запуск того же скомпилированного кода никогда не даст другого результата, это не функция в этом смысле. Ближе к константе.
Пьяный Код Обезьяны
@DrunkenCodeMonkey время оценки не имеет значения. Важно то, что я могу передать аргументы в конструкцию (предоставить входные данные), и она вернет результаты (обратный вывод). С вашей точки зрения, ни одна функция не будет пригодной, поскольку без main()-подобной конструкции программа также будет просто скомпилирована return 0или даже вообще не скомпилирована. Это противоречит мета-посту, на который я ссылаюсь в этом ответе.
Кассио Ренан,
1
C ++ лямбда-функция экономит 3 байта. [](int x){return x%2;} Попробуйте онлайн
Johan du Toit
8

Pyth, 3 2 байта

Я это сделал. Я играл в гольф без игры в гольф. На этот раз это нетривиальное решение, которому удалось получить этот последний байт!

!F

Правда о четных значениях (не включая 0, но это не так положительно ...).

Объяснение:

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

Например !!2 = !0 = 1, и!!!3 = !!0 = !1 = 0

Я буду хранить свою библиотеку 3-байтовых решений здесь ниже.

«Есть еще один ответ с несколькими 3-байтовыми решениями, но он еще далек от завершения. Давайте добавим еще пару:

@U2

[0,1]Индексирует в список модульно, давая достоверные значения при нечетном вводе.

}2P

Находится ли 2 в основной факторизации входных данных? (Правда на четном)

ti2

Это GCD 2 и вход 2? (Правда на четном)

gx1

XOR-ing ввода с 1 не уменьшает его? (Правда на четном)

q_F

В основном, Q == Q*-1^Qгде Q является вводом, но выполняется через цикл. (Правда на четном)

_FI

То же, что и выше.

g^_

Переводится как Q <= -Q^Q(правда на четном)

Обратите внимание, что любое из приведенных выше решений gбудет работать <для фальсифицированной правдивости.)

Стивен Х.
источник
1
Да, это довольно умно :)
Digital Trauma
7

C #, 8 байт

n=>n%2<1

Компилирует в Func<int, bool>.

Или, если анонимная функция запрещена, этот метод для 21 байта:

bool p(int n)=>n%2<1;
TheLethalCoder
источник
@obarakon Не в C #, см. этот ответ на мета . В основном if (1)не компилируется.
TheLethalCoder
нет if (1)в вашем коде?
ВЫ
1
@YOU Правильно, прочитайте мета-пост, чтобы понять, что я имел в виду.
TheLethalCoder
2
@YOU, принятое определение (на этом сайте) значения truey / falsey: Если if (x)значение true, тогда xзначение true. Если он оценивается как ложный, то это так false. Так, в псевдокоде: if x, disp(true), else disp(false). Если это не удается скомпилировать, то xне может быть использовано. В MATLAB и некоторых других языках все, что не равно нулю, считается истинным, тогда как 0и falseсчитается ложным. Таким образом, строка Helloявляется истинным значением в MATLAB. Однако в некоторых языках это значение должно быть логическим (в данном случае), поэтому его необходимо преобразовать в логическое, используя <1.
Стьюи Гриффин,
Понимаю. спасибо за объяснения.
ВЫ
7

Pyth, 3

Я ожидал, что Pyth будет иметь встроенный 1 или 2 байта для этого. Вместо этого вот лучшие решения, которые я мог найти:

%Q2

или же

.&1

или же

e.B
Цифровая травма
источник
2
Не встроенный, но есть 2-байтовое решение .
Стивен Х.
7

TIS-100, 39 байт

Конечно, это, точнее, программа для архитектуры базового узла выполнения T21, эмулируемая эмулятором TIS-100.

Я отошлю вас к этому ответу для фантастически глубокого объяснения оценки программ TIS-100, а также их структуры.

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

Объяснение:

@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

В псевдокоде это будет выглядеть примерно так:

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

T21 не имеет логических типов или значений правда / ложь, поэтому программа возвращает -1 для нечетных чисел и 0 для четных чисел, если предыдущий ввод не был нечетным, в этом случае он возвращает -1 для четных чисел и 0 для нечетных цифры - если этот факт беспокоит вас, это полный ответ, так что вы можете просто перезапустить свой T21 между использованиями.

Tutleman
источник
Я просто думал о TIS-100, головоломке Zachtronics, так как хотел купить ее на прошлой неделе. Является ли TIS реальным языком или он существует только в этой видеоигре?
сешумара
@seshoumara Насколько мне известно, он существует только в игре. Вся архитектура машин в TIS довольно типична, и этот язык в стиле ассемблера подключается к этому.
Steenbergh
Я могу подтвердить, что это существует только в игре (и фактически, даже во вселенной, это странная и странная архитектура). Я написал ответ, связанный с Turtleman, как если бы существовали настоящие устройства TIS, но я сделал это только ради забавы.
подземный
2
@ Blacksilver Реальная проблема, я думаю, заключалась бы в том, чтобы сделать ответ от Spacechem!
Тутлеман,
1
Я реализовал эмулятор TIS для TIO, так что теперь вы можете попробовать его онлайн!
Phlarx
6

Желе , 1 байт

Попробуйте онлайн!

Просто еще один встроенный.

Для людей, которые не знают Jelly: у него довольно мало возможностей вывести пропущенные фрагменты кода, таким образом, нет большой синтаксической разницы между фрагментом, функцией и полной программой; интерпретатор автоматически добавит код для ввода соответствующих аргументов и выдаст результат. Это очень удобно при работе с правилами PPCG, которые разрешают функции и программы, но запрещают фрагменты кода. В ссылке TIO я рассматриваю это как функцию и запускаю ее для каждого целого числа от 1 до 20 включительно, но она также работает как полная программа.

Желе , 2 байта

&1

Попробуйте онлайн!

Это довольно коротко без встроенного тоже. (Это поразрядно-И с 1.)


источник
2
Все эти языки кажутся обманом для этих вопросов. LOL
Пьяный Код Обезьяна
6

7 , 18 символов, 7 байтов

177407770236713353

Попробуйте онлайн!

7 не имеет ничего похожего на нормальное выражение if и имеет более одного идиоматического способа представления логического выражения. Таким образом, трудно понять, что считается истиной и ложью, но эта программа использует 1для нечетного и нулевую строку для четного (значения правдивого и ложного для Perl, в котором написан интерпретатор 7). (Это достаточно легко изменить; нечетный вывод указывается перед первыми 7, четный вывод указывается между первыми двумя 7. Может потребоваться изменение формата вывода для обработки других типов вывода, хотя; я использовал два кратчайшие отчетливые выводы здесь.)

7 использует сжатую восьмеричную кодировку, в которой три байта источника представляют восемь байтов программы, поэтому 18 символов источника представлены в 7 байтах на диске.

объяснение

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

Как и во многих выходных форматах, «выходные целые числа» отменяют любое количество уровней экранирования перед выводом; таким образом 40, которые в совокупности образуют операцию подкачки и побега, могут быть использованы вместо 405операции подкачки (то есть подкачки и побега, за которой следует эскейп). Если бы вы использовали выходной формат, который нестабилен по отношению к экранированию, вам понадобится полный 405там. (Между прочим, причина, почему нам нужно было экранировать строку формата изначально, заключается в том, что если первый вывод содержит непредставимые символы, он автоматически форсирует выходной формат 7. Удаление его удаляет непредставляемые символы и позволяет выбрать формат 0.)

Из шести начальных элементов стека самая верхняя - это основная программа (и она используется 13первой, которая запускается); второй - это 023тот, который выбирает формат вывода и запрашивает ввод, и используется этой операцией; третий потребляется как побочный эффект3 операции (он используется для отбрасывания элементов стека в дополнение к получению результата); четвертый, 40- тело цикла (и используется тем 5, кто выполняет цикл); а пятый и шестой меняются местами столько раз, сколько их ввод (таким образом, они оказываются в своих исходных положениях, если ввод четный, или в позициях друг друга, если ввод нечетный).

Вы можете отключить символ, изменив ведущий 177на 17(и полагаясь на неявный пустой шестой элемент стека), но это изменит четность выходов на менее идиоматический метод, чем odd-is-true, и это не спасет целый байт (источник по-прежнему длиной семь байт). Поэтому я решил использовать более естественную форму вывода, так как она не хуже.


источник
6

Brain-Flak , 22 20 байтов

Вот еще один крутой ответ в Brain-Flak, вы также должны проверить

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

Попробуйте онлайн!

объяснение

Для начала мы сделаем копию нашего ввода с (({})).

Нижняя копия будет служить истинным значением, а верхняя будет использоваться для фактической обработки. Это сделано потому, что нам нужно, чтобы ввод был сверху, и довольно громоздко (два дополнительных байта!) Поставить 1 под входом.

Затем мы начинаем цикл {({}[()]<>)}. Это простая модификация стандартного цикла обратного отсчета, который переключает стеки при каждом уменьшении.

Так как есть два стека, четное число будет заканчиваться на вершине стека, в котором оно началось, в то время как нечетное число будет заканчиваться в противоположном стеке. Скопированное значение останется на месте и, таким образом, будет служить маркером того, с чего мы начали.

Как только мы закончили с циклом, у нас есть 0(первоначально вход), стоящий поверх либо истинного (копия входного), либо ложного (пустой стек) значения. У нас также есть противоположное значение в другом стеке.

Нам нужно избавиться от того, 0что может быть удалено либо с помощью {}или <>. Оба, кажется, работают и дают противоположные результаты, однако{} приводят к ложному значению для нуля, когда он должен возвращать истину. Это потому, что наше «истинное» значение является копией ввода, а ноль является единственным вводом, который может быть ложным.

Эта проблема решается путем завершения программы <>вместо.

(Конечно, в соответствии со спецификацией технически я не должен поддерживать ноль, но даю два варианта, которые я предпочел бы поддержать)

Мастер пшеницы
источник
6

BitCycle , 19 17 16 байт

?ABv
 / \ <
!+ <

Попробуйте онлайн!

Ага, я чувствую, что есть 18-байтовое решение с плавающей точкой вне досягаемости :( Ха-ха! -2 байта с помощью +перенаправления битов, поступающих из разных направлений.

По-прежнему кажется, что в нем слишком много пробелов (целых 6 байт!)

Объяснение:

?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

Пакетный, 16 байтов

@cmd/cset/a%1%%2

Выходы 1 для нечетных, 0 для четных. Альтернативная 16-байтовая версия также работает на отрицательных числах:

@cmd/cset/a"%1&1

17 байт для вывода 1 для четного, 0 для нечетного:

@cmd/cset/a"~%1&1
Нил
источник
Ваша программа отображает только результат MOD, что неверно. В вопросе сказано, что выходной формат должен быть " (Input):(Output)"
stevefestl
5

Excel, 10 байт

=MOD(A1,2)

Или же:

=ISODD(A1)

Для вывода:

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

Урна волшебного осьминога
источник
1
Я никогда не видел Excel в коде гольф ...
programmer5000
1
Альтернативная версия Excel VBA этого кода ?[A1]mod 2; анонимная оконная функция немедленного VBE, которая принимает входные данные [A1]и выводит в оконное окно немедленного VBE с 0(falsey), представляющим четное, и 1(truey), представляющим нечетное
Taylor Scott
5

JSFuck , 9685 9384 6420 байт

JSFuck - это эзотерический и образовательный стиль программирования, основанный на атомарных частях JavaScript. Он использует только шесть разных символов для написания и выполнения кода.

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

Выходы 1 для нечетных и 0 для четных.

Попробуйте онлайн!

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

powelles
источник
Я думаю, что вы можете вывести 0/1 вместо true / false. alert(prompt()%2)кажется, 9384 символа.
ETHproductions
Я сделал это до 6497 символов . Это соответствует следующему JavaScript: []["fill"]["constructor"]("return this%2")["call"]. fillбыл выбран, потому что это стоит всего 81 символ, наименьший из всех методов массива. Также можно утверждать, что JSFuck - это не отдельный язык, а подмножество JavaScript.
Лука
@ Люк, я не могу заставить его работать в фрагменте кода, и так как это всего лишь шутливый ответ, я буду придерживаться версии, основанной на предупреждениях, если только ты не поможешь мне понять, что я делаю неправильно.
Пауэлл
@ Luke Замените пробел на a, +чтобы сохранить еще 77 байтов ;-) И я лично думаю, что отвечать в JSF - это нормально; это в основном диалект JS.
ETHproductions
Код, который я вставил, похож на имя функции. Просто добавьте скобки и включите в них аргумент.
Лука
5

Баш + вс, 21 14 11 9 байт

bc<<<$1%2

Читает ввод из командной строки, раскрывает значение в строку с помощью операции mod и передает строку в bc для расчета. Выходы 1 для нечетных, 0 для четных.

Тестовые случаи:

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

Edit: сохранено 7 байтов благодаря @ ais523
Edit 2: сохранено еще 3 байта благодаря @Dennis
Edit 3: сохранено еще два благодаря @Dennis

Кристофер Питтс
источник
2
Добро пожаловать на сайт!
DJMcMayhem
Возможно, вы могли бы взять ввод из аргумента командной строки в bash (например, $1), а не тратить байты на чтение из stdin?
@ ais523: Отличное предложение! Я должен был подумать о том, чтобы сделать это в сценарии, а не просто в командной строке.
Кристофер Питтс
Вы можете сократить это до bc<<<$1%2.
Денис
@ Денис: Спасибо! Я попробовал это раньше, но не смог понять синтаксис правильно.
Кристофер Питтс