INTERCAL olarak kısaltılmış olan , telaffuz edilebilir bir kısaltmaya sahip olmayan derleyici dili çok özel bir programlama dilidir. Yeniden üretilemez nitelikleri arasında ikili operatörleri bulunur.
INTERCAL'in iki ikili operatörü interleave ( karıştırıcı olarak da bilinir ), ve seçin . Interleave bir değişiklikle (¢) temsil edilir ve seçim bir kare (~) ile temsil edilir.
Interleave 0-65535 aralığında iki sayı alarak ve bitlerini değiştirerek çalışır. Örneğin:
234 ¢ 4321
234 = 0000011101010
4321 = 1000011100001
Result: 01000000001111110010001001
Output: 16841865
0-65535 aralığında iki sayı alarak, ilk işlemdeki bitleri ikinci işlemselde 1s ile aynı konumda olan ve bu parçaları doğru şekilde paketleyen işleri seçin.
2345 ~ 7245
2345 = 0100100101001
7245 = 1110001001101
Taken : 010 0 10 1
Result: 0100101
Output: 37
Bu zorlukta, interleave veya select işlemini kullanarak size ikili bir ifade verilecektir. Mümkün olan en az baytı kullanarak sonucu hesaplamanız gerekir.
İfade, 0-65535'te bir tam sayı, bir boşluk ya ¢
da bir boşluk ve 0-65535'te bir tam sayıdan oluşan boşlukla ayrılmış bir dize olarak verilecektir ~
.
Giriş ve çıkış herhangi bir standart sistemden (STDIN, fonksiyon, komut satırı vb.) Yapılabilir. Standart boşluklar yasaklandı.
Örnekler:
5 ¢ 6
54
5 ~ 6
2
51234 ¢ 60003
4106492941
51234 ~ 60003
422
Bu kod golf - en az bayt kazanır. İyi şanslar.
EDIT: Bazı diller INTERCAL'in değişim (¢) sembolünü desteklemediğinden, büyük para ($) sembolünü 5 bayt ceza ile kullanabilirsiniz.
$
.
FIVE ONE TWO THREE FOUR
? Ve çıktı Romen rakamlarında olmamalı mı?