Écrivez un programme qui prend en entrée une chaîne et un entier n
, et génère:
- La chaîne qui a été transmise au programme
n
il y a quelques temps; - Un nouveau programme qui sera utilisé pour la prochaine invocation.
Vous ne pouvez pas stocker de données en dehors du programme et votre programme ne peut pas appeler les programmes précédents de la chaîne. Si la chaîne n'existe pas, sortez une chaîne vide (mais sortez toujours le programme suivant).
Exemple d'exécution, où j'utilise la notation program_n
pour chaque programme successif (Bien sûr, [This text is the nth program]
serait remplacé par du code réel.)
$ program_1 "One" 1
[This text is the second program]
$ program_2 "Two" 1
One
[This text is the third program]
$ program_3 "Three" 2
One
[This text is the fourth program]
$ program_4 "Four" 2
Two
[This text is the fifth program]
$ program_5 "Five" 1
Four
[This text is the sixth program]
program_n+1
'à la ligne de sortie comme [program_3, One]
si c'était ce que vous aimeriez voir. Si les deux sorties vont à la sortie standard, comment devraient-elles être séparées? Les fonctions sont-elles également autorisées au lieu des programmes complets?