Écrivez un programme ou une fonction non vide qui, lorsqu'il est appelé, génère une seule valeur, 1 ou 0, et lorsqu'il est appelé plusieurs fois, les numéros de sortie produisent la représentation binaire du code source de votre programme (dans la même page de code à partir de laquelle votre code est compilé). / interprété).
Par exemple, si votre code source était abc
(en ASCII), les sorties seraient:
1st call: 0 // ASCII letter 'a'
2nd call: 1
3rd call: 1
4th call: 0
5th call: 0
6th call: 0
7th call: 0
8th call: 1
9th call: 0 // ASCII letter 'b'
10th call: 1
11th call: 1
12th call: 0
13th call: 0
14th call: 0
15th call: 1
16th call: 0
17th call: 0 // ASCII letter 'c'
18th call: 1
19th call: 1
20th call: 0
21st call: 0
22nd call: 0
23rd call: 1
24th call: 1
After the 24th call, the behaviour is undefined.
La représentation binaire de la source doit contenir au moins un bit 0 et un bit 1.
Au lieu de 1 et 0, vous pouvez générer deux valeurs cohérentes distinctes (telles que true
et false
).
Les programmes auto-modifiables qui produisent la représentation binaire de la source d'origine sont autorisés, à condition qu'ils ne lisent pas le code source pour savoir quoi imprimer ensuite.
Il s'agit de code-golf , donc la réponse la plus courte en octets l'emporte.