Écrivez deux fragments de code, que nous appellerons s_zero et s_one.
Le programme (l, n) se compose de l copies de s_zero et s_one correspondant aux chiffres de n en binaire, complété par s_zero à gauche.
Par exemple, si s_zero = foo
et s_one = bar
alors
Program (4, 0) = foofoofoofoo
Program (4, 1) = foofoofoobar
Program (4, 2) = foofoobarfoo
etc.
Le programme (l, n) doit imprimer la source du programme (l, (n + 1) mod (2 ^ l)) sur la sortie standard. Dans l'exemple ci-dessus, foobarfoofoo
doit imprimer foobarfoobar
lors de l'exécution.
Votre score est la somme des longueurs des fragments s_zero et s_one
code-golf
quine
source-layout
QuadmasterXLII
la source
la source
Réponses:
CJam, 29 + 29 = 58 octets
Le code 0:
Le 1 code:
Explication
la source
CJam, 47 + 47 = 94 octets
Le code 0:
Le 1 code:
Excusez le juron.
Je suis sûr que je peux encore raser quelques octets là-bas. J'ajouterai une explication une fois que je déciderai que je ne peux plus m'embêter à jouer au golf.
Testez-le ici.
la source
CJam, 45 + 45 = 90 octets
Le code 0 :
Le 1 code:
Explication bientôt.
Essayez-le en ligne ici
la source
GolfScript, 37 + 37 = 74 octets
Pas tout à fait aussi court que la solution CJam de user23013 , mais j'ai pensé que je publierais cela de toute façon, ne serait-ce que pour augmenter (marginalement) la diversité des langues utilisées.
Ma solution n'est pas directement basée sur l'une des solutions existantes (et, en fait, je ne les ai pas examinées en détail, car je ne lis toujours pas très bien CJam), mais elles présentent toutes des variantes de la même structure de base quine (
{".~"}.~
dans GolfScript,{"_~"}_~
dans CJam). Ce n'est pas vraiment très surprenant, car cela semble être l'un des moyens les plus efficaces d'écrire un quine avec une charge utile arbitraire dans ces langues.Il y a plusieurs parties de ce code que je n'aime pas vraiment, et je soupçonne qu'il est possible de jouer au golf plus loin, mais j'ai passé trop de temps là-dessus.
la source