Język kompilatora bez wyraźnego akronimu, w skrócie INTERCAL , jest bardzo unikalnym językiem programowania. Wśród jego niepowtarzalnych cech znajdują się operatory binarne.
Dwa operatory binarne INTERCAL są przeplatane (znane również jako mingle ) i select . Przeplot jest reprezentowany przez zmianę (¢), a wybór jest reprezentowany przez sqiggle (~).
Przeplot działa poprzez pobranie dwóch liczb z zakresu 0-65535 i naprzemiennie ich bitów. Na przykład:
234 ¢ 4321
234 = 0000011101010
4321 = 1000011100001
Result: 01000000001111110010001001
Output: 16841865
Wybierz prace, biorąc dwie liczby z zakresu 0-65535, biorąc bity w pierwszym operandzie, które są w tej samej pozycji co 1s w drugim operandzie, i odpowiednio upakuj te bity.
2345 ~ 7245
2345 = 0100100101001
7245 = 1110001001101
Taken : 010 0 10 1
Result: 0100101
Output: 37
W tym wyzwaniu otrzymasz wyrażenie binarne za pomocą operacji przeplotu lub wyboru. Musisz obliczyć wynik, używając jak najmniejszej liczby bajtów.
Wyrażenie będą jako przestrzeń oddziela ciąg znaków, składający się z liczby całkowitej w 0-65535, przestrzeni albo ¢czy~ , przestrzeni i liczbę całkowitą 0-65535.
Wejście i wyjście może odbywać się za pośrednictwem dowolnego standardowego systemu (STDIN, funkcja, wiersz poleceń itp.). Standardowe luki zabronione.
Przykłady:
5 ¢ 6
54
5 ~ 6
2
51234 ¢ 60003
4106492941
51234 ~ 60003
422
To jest golf golfowy - wygrywa najmniej bajtów. Powodzenia.
EDYCJA: Ponieważ niektóre języki nie obsługują symbolu zmiany (¢) INTERCAL, możesz zamiast tego użyć symbolu dużych pieniędzy ($), z karą 5 bajtów.
$.
FIVE ONE TWO THREE FOUR? I czy dane wyjściowe nie powinny być zapisane cyframi rzymskimi?