Schreiben Sie zwei Codefragmente, die wir s_zero und s_one nennen werden.
Das Programm (l, n) besteht aus l Kopien von s_zero und s_one, die den Ziffern von n in Binärform entsprechen und links mit s_zero aufgefüllt sind.
Wenn zum Beispiel s_zero = foo
und s_one =, bar
dann ist
Programm (4, 0) = foofoofoofoo
Programm (4, 1) = foofoofoobar
Programm (4, 2) = foofoobarfoo
usw.
Programm (l, n) muss die Quelle des Programms (l, (n + 1) mod (2 ^ l)) drucken, um zu standardisieren. Im obigen Beispiel foobarfoofoo
muss foobarfoobar
bei der Ausführung gedruckt werden .
Ihre Punktzahl ist die Summe der Längen der Fragmente s_zero und s_one
code-golf
quine
source-layout
QuadmasterXLII
quelle
quelle
Antworten:
CJam, 29 + 29 = 58 Bytes
Der 0-Code:
Der 1 Code:
Erläuterung
quelle
CJam, 47 + 47 = 94 Bytes
Der 0-Code:
Der 1 Code:
Entschuldigen Sie das Expletive.
Ich bin sicher, ich kann dort noch ein paar Bytes rasieren. Ich werde eine Erklärung hinzufügen, sobald ich mich entscheide, dass ich nicht mehr die Mühe habe, Golf zu spielen.
Testen Sie es hier.
quelle
CJam, 45 + 45 = 90 Bytes
Der 0- Code:
Der 1 Code:
Erklärung bald.
Probieren Sie es hier online aus
quelle
GolfScript, 37 + 37 = 74 Bytes
Nicht ganz so kurz wie die CJam-Lösung von user23013 , aber ich dachte, ich würde dies trotzdem posten, wenn auch nur, um die Vielfalt der verwendeten Sprachen (geringfügig) zu erhöhen.
Meine Lösung basiert nicht direkt auf einer der vorhandenen Lösungen (und ich habe sie in der Tat nicht im Detail untersucht, da ich CJam immer noch nicht sehr gut lese), aber alle enthalten Varianten derselben grundlegenden Quine-Struktur (
{".~"}.~
in GolfScript,{"_~"}_~
in CJam). Das ist nicht wirklich überraschend, da es eine der effizientesten Möglichkeiten zu sein scheint, ein Quine mit einer beliebigen Nutzlast in diesen Sprachen zu schreiben.Es gibt einige Teile dieses Codes, die ich nicht wirklich mag, und ich vermute, dass es möglich ist, dies weiter zu spielen, aber ich habe zu viel Zeit damit verbracht, wie es ist.
quelle