Escreva um programa ou função não vazio que, quando chamado, gera um único valor, 1 ou 0, e quando chamado várias vezes, os números de saída produzem a representação binária do código-fonte do seu programa (na mesma página de código da qual seu código é compilado / interpretado).
Por exemplo, se seu código-fonte fosse abc
(em ASCII), as saídas seriam:
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.
A representação binária da fonte deve conter pelo menos um bit 0 e um bit 1.
Em vez de 1 e 0, você pode gerar dois valores consistentes e distintos (como true
e false
).
Os programas de modificação automática que emitem a representação binária da fonte original são permitidos, desde que eles não leiam o código-fonte para descobrir o que imprimir a seguir.
Isso é código-golfe , então a resposta mais curta em bytes vence.