RePeNt, 9 , 8 caractères
1↓[2?+1]
Ou 10 caractères avec impression :
1↓[2?+↓£1]
Exécuter en utilisant :
RePeNt "1↓[2?+1]"
RePeNt est un langage jouet basé sur la pile que j'ai écrit (et que je continue d'améliorer) dans lequel tous les opérateurs/fonctions/blocs/boucles utilisent la notation polonaise inversée (RPN).
Command Explanation Stack
------- ----------- -----
1 Push a 1 onto the stack 1
↓ Push last stack value 1 1
[ Start a do-while loop 1 1
2? Push a two, then pop the 2 and copy the last 2 stack 1 1 1 1
items onto the stack
+ Add on the stack 1 1 2
↓£ Push last stack value then print it 1 1 2
1 Push a 1 onto the stack 1 1 2 1
] Pop value (1 in this case), if it is a 0 exit the loop 1 1 2
otherwise go back to the loop start.
La réponse se trouve sur la pile qui se construit comme suit :
1 1
1 1 2
1 1 2 3
1 1 2 3 5
Il ne se termine jamais (il a l'équivalent d'un programme C#/JAVA). do { } while(true)
) car la séquence ne se terminera jamais, mais une solution terminale peut être écrite ainsi :
N_1↓nI{2?+}
qui est de 12 caractères.
Je me demande si quelqu'un le lira un jour :(