Язык компилятора без произносимой аббревиатуры, сокращенно INTERCAL , является уникальным языком программирования. Среди его невоспроизводимых качеств - бинарные операторы.
Два бинарных оператора INTERCAL - это чередование (также известное как mingle ) и select . Чередование представляется с изменением (¢), а выделение представляется с помощью sqiggle (~).
Чередование работает, беря два числа в диапазоне 0-65535 и чередуя их биты. Например:
234 ¢ 4321
234 = 0000011101010
4321 = 1000011100001
Result: 01000000001111110010001001
Output: 16841865
Выбор работает, беря два числа в диапазоне 0-65535, беря биты в первом операнде, которые находятся в том же положении, что и 1 во втором операнде, и упаковывая эти биты справа.
2345 ~ 7245
2345 = 0100100101001
7245 = 1110001001101
Taken : 010 0 10 1
Result: 0100101
Output: 37
В этом задании вам будет дано двоичное выражение с использованием операции чередования или выбора. Вы должны вычислить результат, используя как можно меньше байтов.
Выражение будет дано в виде строки, разделенной пробелами, состоящей из целого числа в 0-65535, пробела или ¢
или ~
пробела и целого числа в 0-65535.
Вход и выход могут быть через любую стандартную систему (STDIN, функция, командная строка и т. Д.). Стандартные лазейки запрещены.
Примеры:
5 ¢ 6
54
5 ~ 6
2
51234 ¢ 60003
4106492941
51234 ~ 60003
422
Это код гольф - побеждает меньше байтов. Удачи.
РЕДАКТИРОВАТЬ: Поскольку некоторые языки не поддерживают символ изменения (¢) INTERCAL, вы можете использовать вместо него символ больших денег ($) со штрафом в 5 байт.
$
.
FIVE ONE TWO THREE FOUR
? И не должно ли вывод быть в римских цифрах?