Napisz dwa fragmenty kodu, które nazwiemy s_zero i s_one.
Program (l, n) składa się z l kopii s_zero i s_one odpowiadających cyfrom b w formacie binarnym, wypełnionych s_zero po lewej stronie.
Na przykład, jeśli s_zero = foo
i s_one = bar
to
Program (4, 0) = foofoofoofoo
Program (4, 1) = foofoofoobar
Program (4, 2) = foofoobarfoo
itd.
Program (l, n) musi wydrukować źródło programu (l, (n + 1) mod (2 ^ l)) na standardowe wyjście. W powyższym przykładzie foobarfoofoo
należy wydrukować foobarfoobar
po uruchomieniu .
Twój wynik to suma długości fragmentów s_zero i s_one
code-golf
quine
source-layout
QuadmasterXLII
źródło
źródło
Odpowiedzi:
CJam, 29 + 29 = 58 bajtów
Kod 0:
Kod 1:
Wyjaśnienie
źródło
CJam, 47 + 47 = 94 bajty
Kod 0:
Kod 1:
Przepraszam za przekleństwa.
Jestem pewien, że wciąż mogę zgolić kilka bajtów. Dodam wyjaśnienie, gdy zdecyduję, że nie będę się już przejmować golfem.
Sprawdź to tutaj.
źródło
CJam, 45 + 45 = 90 bajtów
0 Kod:
1 Kod:
Wyjaśnienie wkrótce.
Wypróbuj online tutaj
źródło
GolfScript, 37 + 37 = 74 bajty
Nie tak krótkie jak rozwiązanie CJam użytkownika user23013 , ale pomyślałem, że i tak to opublikuję, jeśli tylko (nieznacznie) zwiększę różnorodność używanych języków.
Moje rozwiązanie nie opiera się bezpośrednio na żadnym z istniejących rozwiązań (i rzeczywiście ich nie zbadałem szczegółowo, ponieważ nadal nie czytam zbyt dobrze CJam), ale wszystkie mają warianty tej samej podstawowej struktury quine (
{".~"}.~
w GolfScript,{"_~"}_~
w CJam). Nie jest to bardzo zaskakujące, ponieważ wydaje się, że jest to jeden z najbardziej skutecznych sposobów napisania quinu z dowolną ładownością w tych językach.Jest kilka części tego kodu, które tak naprawdę mi się nie podobają i podejrzewam, że może być możliwe dalsze granie w golfa, ale spędziłem na tym zbyt wiele czasu.
źródło