Votre tâche consiste à écrire un programme de longueur paire , qui imprime un carré ASCII (décrit ci-dessous), qui augmente sa longueur de côté de 1 unité chaque fois que le code source original est collé au milieu du code actuel.
Il m'est difficile de définir très bien cette tâche. Je vais donc vous donner un exemple:
Disons que votre code initial était
CODE
et qu'il imprimait:0
Ensuite, insérez
CODE
au milieu: votre code devientCOCODEDE
et il devrait imprimer:00 00
Réinsérez
CODE
au milieu: votre code devientCOCOCODEDEDE
et devrait imprimer:000 000 000
Etc. Votre réponse devrait théoriquement fonctionner après n'importe quel nombre d'itérations, mais je comprends si, en raison de limitations de performances langagières, elle ne peut pas fonctionner raisonnablement au-dessus d'un certain seuil.
Certaines règles:
Vous pouvez utiliser n’importe quel code ASCII imprimable (32-127) comme caractère à utiliser pour votre carré. Votre choix doit être constant (vous devez utiliser le même caractère pour chaque itération).
Le carré de sortie initial doit avoir la longueur de côté 1 .
Un carré ascii-art est défini comme une chaîne de N lignes (séparées par N-1 sauts de ligne / nouvelles lignes), chaque ligne contenant N copies du caractère choisi.
Votre sortie ne doit contenir aucun espace supplémentaire, autre qu'un retour à la ligne final.
Vous pouvez utiliser les valeurs par défaut pour les entrées et les sorties (les programmes ou les fonctions sont autorisés, mais pas les extraits).
Le milieu de votre code est défini comme le point où le code source peut être divisé en deux parties, de sorte que les deux soient égales.
Vos réponses seront notées en fonction de la longueur de votre programme d'origine , en octets. Le plus petit nombre d'octets gagne. En cas d'égalité des voix, la réponse soumise précédemment l'emporte.
Vous pouvez utiliser ce programme pour appliquer les insertions sans avoir à le faire à la main.