Schreiben Sie ein nicht leeres Programm oder eine Funktion, die bei Aufruf einen einzelnen Wert (1 oder 0) ausgibt und bei mehrfachem Aufruf die Ausgabenummern die Binärdarstellung des Quellcodes Ihres Programms (auf derselben Codepage, aus der Ihr Code kompiliert wurde) erzeugt /interpretiert).
Wenn Ihr Quellcode beispielsweise abc
(in ASCII) wäre, wären die Ausgaben:
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.
Die Binärdarstellung der Quelle muss mindestens ein 0-Bit und ein 1-Bit enthalten.
Anstelle von 1 und 0 können Sie auch zwei unterschiedliche, konsistente Werte (z. B. true
und false
) ausgeben .
Selbstmodifizierende Programme, die die Binärdarstellung der Originalquelle ausgeben, sind zulässig, sofern sie den Quellcode nicht lesen, um herauszufinden, was als Nächstes gedruckt werden soll.
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.