発音可能な頭字語のないコンパイラ言語(略してINTERCAL)は、非常にユニークなプログラミング言語です。その再現性のなさの中には、二項演算子があります。
INTERCALの2つの2項演算子は、インターリーブ(ミングルとも呼ばれます)、およびselectです。インターリーブは変更(¢)で表され、選択は波形(〜)で表されます。
インターリーブは、0〜65535の範囲の2つの数値を取得し、それらのビットを交互に切り替えることで機能します。例えば:
234 ¢ 4321
234 = 0000011101010
4321 = 1000011100001
Result: 01000000001111110010001001
Output: 16841865
Selectは、0〜65535の範囲の2つの数値を取得し、2番目のオペランドの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
か?そして、出力はローマ数字であるべきではありませんか?