Напишите программу или функцию, которая принимает положительное целое число. Вы можете предположить, что ввод действителен и может принимать его как строку. Если номер любой из
123
234
345
456
567
678
789
затем выведите истинное значение. В противном случае выведите ложное значение. Например, входы
1
2
3
12
122
124
132
321
457
777
890
900
1011
1230
1234
все должно привести к ложному выводу. (Входные данные не будут иметь начальных нулей, поэтому вам не нужно беспокоиться о таких вещах, как 012
.)
Самый короткий код в байтах побеждает.
code-golf
number
decision-problem
integer
Кальвин Хобби
источник
источник
012
?012
Будет ложно, но вы можете предположить, что это не вход.Ответы:
Python, 24 байта
Анонимная функция, которая выводит 0 или 1. Она создает список
[123, 234, 345, 456, 567, 678, 789]
и подсчитывает, сколько раз вводится.источник
Python, 24 байта
Просто много условий цепочки.
источник
lambda
я бы даже не догадался, что это Python. Это ужасноHaskell, 22 байта
Анонимная функция. Создает равномерно распределенный список
[123, 234, 345, 456, 567, 678, 789]
и проверяет, является ли ввод элементом.источник
Брахилог , 9 байт
Попробуйте онлайн! или Проверьте все контрольные примеры.
Кредиты Денису за алгоритм .
По-английски: «(докажите, что) первая цифра входа, соединенная с ним дважды, добавьте 12, по-прежнему является входом».
источник
Python 2, 25 байт
Проверьте это на Ideone .
источник
Brain-Flak 76 + 3 = 79 байт
Этот ответ - гольф этого ответа. На самом деле я не совсем понимаю, как работает мой ответ, но DJMcMayhem дает хорошее объяснение в своем первоначальном ответе, и мой ответ является его модификацией.
Он запускается с флагом -a ascii, добавляющим 3 байта.
Пояснение (сортов)
Начиная с оригинального рабочего решения:
Я запускаю это через простой алгоритм игры в гольф, который я написал, и получаю:
Отсюда я вижу раздел, который по
<({}[()()()])>{}
существу умножается на единицу, что делает его равным{}[()()()]
уменьшению всего кода до:Наконец негативы могут быть объединены:
источник
Brainfuck, 32 байта
Попробуйте онлайн!
Кредиты Линн за ядро алгоритма.
источник
Желе , 6 байт
Попробуйте онлайн! или проверьте все контрольные примеры .
Как это работает
источник
ast.literal_eval
касается,012
не представляет собой целое число .05AB1E , 5 байтов
объяснение
Попробуйте онлайн
источник
2Å1
вместоXX,
, просто для чертовски меньше команд (4 вместо 5).Å
доступен для записи на моей клавиатуре (в отличие от‚
), что является преимуществом :)‚
(не тот, который,
я использовал) также не имеет последовательности клавиш для составления, в то времяÅ
какoA
на клавиатуре en-US.MATL , 8 байт
Попробуйте онлайн!
Это будет печатать
1 1
для достоверного ввода, и массив с0
в нем для ложного значения, так как это ложно в MATL.Объяснение:
источник
d1=Ep4=
(я не проверил полностью)dTTX=
для 5 байтовT
T
это буквальноеtrue
иF
естьfalse
. СоседниеT
иF
слипаются, так чтоTT
есть[true true]
, что для этих целей эквивалентно[1 1]
. См. Раздел 4.3 спецификацииJava 7, 46 байт
После нескольких попыток с Leaky Nun в чате, это кажется самым коротким. Иногда вам просто нужно делать вещи простым способом: /
Объяснение:
источник
Perl 6 ,
35 29 24 2119 байтОбъяснение:
Использование:
источник
Сетчатка , 26
Выходы 1 для правды и 0 для фальси.
Попробуйте онлайн (добавлена первая строка, позволяющая запускать несколько тестовых случаев).
источник
Рубин,
323025 + 2 = 27 байт+2 байта для
-nl
флагов.Принимает ввод на STDIN и печатает
true
илиfalse
.Смотрите его на repl.it: https://repl.it/DBn2/2 (Нажмите ▶ ️, а затем введите ввод в консоли ниже.)
источник
-a
делаетsplit
, неchop
? Кроме того, что делает&
? Я использую более старый Ruby, который выдает ошибку. Во всяком случае, он прекрасно работает на 26 байтов без него.-l
, нет-a
.&.
является оператором "безопасной навигации", добавлен в Ruby 2.3. Без этого вводы вроде19
, которые не являются подстроками, если"123456789"
, вызовут ошибку NoMethodError.Brain-Flak , 99 байтов
Попробуйте онлайн!
Это 98 байт кода
+1
для-a
флага.Это печатает
1
для правды, и либо0
или ничего (что эквивалентно 0) для фальсификацииисточник
...)({}
но различаются. Если вы нажмете и выскочит без использования значения, вы можете сжать его в одну вещь. Я могу связать вас с версией вашего кода со всеми этими играми в гольф, если хотите.Brain-Flak , 114 байт
Попробуйте онлайн!
Правильная версия (в духе вопроса): принимает целое число в качестве входных данных, выводит 0 для фальси и 1 для истинного.
Это не чистый стек.
Алгоритм
Пусть вход будет
n
.Вывод правдив, если
(n-123)(n-234)(n-345)(n-456)(n-567)(n-678)(n-789)=0
.Я вычислил эти семь чисел, сначала вычтя 12, а затем вычти 111 7 раз, а затем вычислил логическое двойное НЕ из этих семи чисел и сложил их.
Для достоверных результатов сумма равна 6; для результатов фальси сумма равна 7.
Затем я вычитаю сумму из 7 и вывожу ответ.
источник
R,
3022 байтаНе особенно захватывающе; проверьте, находится ли вход в последовательности, заданной 12 + 111k, где k - каждый от 1 до 7. Обратите внимание, что
:
предшествует,*
поэтому умножение происходит после генерации последовательности.источник
C # (интерактивный компилятор Visual C #) ,
41 3023 байтаПервая подача кода на гольф, будьте нежнее :)
Попробуйте онлайн!
источник
return
ключевое слово: 30 байтовBrainfuck, 43 байта
Бах, я не очень хорош в этом. Выходы ,
\x01
если выход является одной из строк123
,234
...,789
; выводит\x00
иначе.(Я бью Java 7, хотя ...)
Попробуйте онлайн!
источник
[>>]<
? Разве это не может быть просто>
?JavaScript ES6, 26 байт
n=>1>(n-12)%111&n>99&n<790
Это использует тот факт, что я использую побитовые логические операторы для того, что по сути является логическим (которые основаны на битах!)
Спасибо Титу за спасение 2.
источник
(n-12)
иn>99
Excel -
62573531 байтОсновано на ответе Анастасии-Романовой, но возвращает
TRUE/FALSE
значения Excel .Далее мы можем добраться до
поскольку оба
RIGHT
иLEFT
возвращают один символ по умолчанию.И, вдохновленный некоторыми решениями Python:
Спасибо Нейлу за еще 4 байта ...
источник
N<900
экономит байт, в этом случае вы также можете использоватьN>99
вместоLEN(N)=3
.=REPT(LEFT(N),3)+12=N
гдеN
находится имя ссылочной ячейки.Брахилог (2), 7 байт
Попробуйте онлайн!
объяснение
Как полная программа, мы получаем правдивое возвращение, если все утверждения верны, ложное возвращение в случае неудачи.
источник
CJam,
139 байтовПопробуйте онлайн!
объяснение
источник
2345
Excel - 104 байта
Объяснение:
Синтаксис формулы IF в Excel:
Если длина ввода
N
, где это имя ссылочной ячейки, меньше 3, то она вернет Falsy . Иначе, если длина вводаN
равна 3, а разность второй цифры и первой цифры, а также разница третьей и второй цифры равна 1, возвращается значение « Истина» .источник
=REPT(LEFT(N),3)+12=N
гдеN
находится имя ссылочной ячейки.Dyalog APL , 10 байт
Принимает строковый аргумент.
1 1≡
{1, 1} идентично¯2-/
обратная попарная разница⍎¨
каждый символ принят как число?Попробуй APL онлайн! (
⍎
был эмулирован вe
целях безопасности.)источник
Perl, 18 байт
Включает +1 для
-p
Запустить с вводом на STDIN
123.pl
:источник
PHP, 31 байт
Проверьте, является ли первая цифра (число минус 12) кратной 111
источник
PowerShell v3 +, 24 байта
Использует тот же трюк «кратно 111 плюс 12», что и некоторые другие ответы, но идет в другом направлении. Принимает входные данные
$args[0]
, вычитает12
, делит на111
и проверяет, является ли это-in
диапазон1..7
. Выводит логическое значение true / false. Требуется v3 + для-in
оператора.Тестовые случаи
источник
Машинный код ARM, 18 байт
Шестнадцатеричный дамп (little endian):
Эта функция принимает пару указателей длины для строки. Вывод в стиле bash, он выводит 0 для true и ненулевое значение для false. В Си функция будет объявлена int oneTwoThree (длина size_t, строка char *). Кодировка команды - thumb-2, в которой есть 2- и 4-байтовые инструкции. Проверено на Raspberry Pi 3.
Неуправляемая сборка:
Скрипт тестирования (также сборка):
источник
JavaScript (ES6), 34 байта
И еще один вариант в JS. Принимает ввод как строку и выводит
0
дляfalse
и1
дляtrue
.Смотрите мои другие решения здесь и здесь
Попытайся
источник