Сегодня, играя с моими детьми, я заметил, что простая игрушка в парке спрятала вызов.
У колеса есть треугольник, который указывает на число, но также имеет три круга, которые указывают на числа каждые 90 градусов от первого. Так:
Задача (действительно простая)
Если задано целое число от 1 до 12 (то, на которое указывает треугольник) в любой приемлемой форме, выведите также в любой приемлемой форме и упорядочите три числа, обозначенные кружками (те, которые каждые 90 градусов).
Контрольные примеры
In Out
1 4, 7, 10
2 5, 8, 11
3 6, 9, 12
4 7, 10, 1
5 8, 11, 2
6 9, 12, 3
7 10, 1, 4
8 11, 2, 5
9 12, 3, 6
10 1, 4, 7
11 2, 5, 8
12 3, 6, 9
Это код-гольф , поэтому может выиграть самый короткий код для каждого языка!
0 -> 4, 7, 10
?Ответы:
Python 3 , 33 байта
Попробуйте онлайн!
Python 2 , 35 байт
Попробуйте онлайн!
источник
Желе , 8 байт
Монадическая ссылка, принимающая число и возвращающая список чисел.
Попробуйте онлайн! или увидеть все случаи .
Как?
источник
12Rṙm-3Ḋ
(вывод в обратном порядке)Python 2 , 35 байт
Попробуйте онлайн!
источник
MATL , 9 байт
Попробуйте онлайн!
объяснение
Рассмотрим ввод
4
как пример.источник
R ,
2928 байтСпасибо @Giuseppe за сохранение байта!
Попробуйте онлайн!
источник
APL + WIN, 13 байт
Объяснение:
источник
C (gcc) , 48 байтов
Попробуйте онлайн!
источник
JavaScript (ES6), 29 байт
Похоже на ответ xnor .
демонстрация
Показать фрагмент кода
источник
n=>[3,6,9].map(v=>(v+n)%12)
тогда понял , что она возвращает 0, а не 12 ...n=>[3,6,9].map(v=>(v+n)%12||12)
(но это 31 байт).Октава , 25 байт
Попробуйте онлайн!
Довольно простая анонимная функция.
Сначала мы создаем массив
[1:12 1:12]
- так две копии полного набора номера. Затем мы индексируем, чтобы выбрать значенияx+3, x+6, x+9
, гдеx
вводится число.Octave индексируется 1, так что мы можем просто выбирать элементы массива на основе входных данных (хотя, если честно, 0-индексированный использовал бы такое же количество байтов здесь).
Похоже, что для этого используется метод, который уникален для других ответов в том смысле, что, имея две копии массива, нам не нужно переносить индексы по модулю.
источник
mod
и не мог сделать его короче. Отлично сработано! Не стесняйтесь оставлять как ответ.Befunge-93,
201918 байтПопробуйте онлайн!
объяснение
Это зависит от поведения, специфичного для ссылочного интерпретатора: в конце файла
&
оператор возвращает последнее прочитанное значение. Вот почему мы можем спокойно перечитывать час из stdin на каждой итерации цикла.источник
&
сделал это&
также может быть использован как своего рода генератор случайных чисел . Однако это менее надежно, поскольку зависит от компилятора, который его использовал. На данный момент он работает над TIO, но было время, когда Деннис перешел на другую версию gcc, и мы на некоторое время потеряли эту функциональность.APL (Дьялог) , 12 байт
Попробуйте онлайн!
источник
Japt, 11 байт
Попытайся
объяснение
Неявный ввод целого числа
U
. Создайте 3 элемента array (3Æ
) и, для каждого элемента, увеличьтеU
на 3 (U±3
), по модулю на 12 (uC
) и, следовательно12%12=0
, верните результат ИЛИ 12 (ªC
).источник
Brain-Flak , 84 байта
Попробуйте онлайн!
По крайней мере, я победил решение для лица Дурнкоба ...
Объяснение:
источник
Pyth , 12 байт
Попробуйте онлайн!
источник
SOGL V0.12 , 9 байтов
Попробуй здесь!
источник
Чисто , 44 байта
Попробуйте онлайн!
источник
Напористый , 12 байт
Попробуйте онлайн!
12 байт
Альтернатива для того же количества байтов:
Попробуйте онлайн!
источник
C # (.NET Core) , 42 байта
Попробуйте онлайн!
По сути, просто порт многих других ответов на C #.
источник
K (ок) , 11 байт
Решение:
Попробуйте онлайн!
Примеры:
Объяснение:
Это было первое решение, которое пришло на ум. Не может быть лучшим или самым коротким.
источник
GolfScript, 46 байт
Это первый раз, когда я занимаюсь гольфом кода, поэтому из-за недостатка опыта я, вероятно, не нашел лучшего решения, но мне нужно с чего-то начать, верно?
Попробуйте онлайн или попробуйте все случаи
источник
Perl 6 , 23 байта
Попробуйте онлайн!
источник
PHP, 37 + 1 байт
Запустите как трубу с
-nR
или попробуйте онлайн .источник
лицо ,
9694 байтаЭто просто добавляет два, моды на 12, добавляет еще один и печатает. Затем он делает это еще два раза.
Комментируемая версия:
Попробуйте онлайн! (Конечный символ новой строки требуется на TIO из-за ошибки, исправленной в более новой версии face.)
источник
m3*33
позволяет заменить три+nn1
s одним+nn3
tio.run/…Forth (gforth) , 39 байтов
Ввод берется из стека, а вывод помещается в стек
Попробуйте онлайн!
объяснение
источник
Haskell , 29 байт
-2 байта благодаря Лайкони.
Попробуйте онлайн!
Не очень оригинально, нет ...
источник
Swift , 30 байт
Попробуйте онлайн!
Порт многих других ответов на Swift
источник
Wolfram Language (Mathematica) 35 байтов
Вышесказанное утверждает, в инфиксной записи, что может быть выражено более четко как
RotateLeft
вращаетсяRange[12]
, последовательность 1,2, ... 12, влево на введенный номер.Slot[1]
или#
содержит введенный номер, n.Например, при n = 4
возвращает список
Take...{3,9,3}
возвращает каждый третий элемент в этом списке с позиции 3 до позиции 9, а именноисточник
Пакет Windows,
137 125 11168 байтПорт
add value to input and mod 12 + 1
источник
Perl 5 , 30 байт
Попробуйте онлайн!
источник
PowerShell , 30 байт
Попробуйте онлайн!
Порт других ответов (например, xnor's Python 2 answer). Ho-гул.
источник