Neste desafio, você estará construindo um programa que cresce à medida que atravessa as eras ... Até 2017.
Desafio
Sempre que essa descrição do desafio indicar "programa", você também poderá ler "função".
Sua apresentação, quando executado, a saída vontade um programa que é THE LENGTH OF YOUR SUBMISSION
+ 1
bytes.
Quando esse programa é executado, ele irá imprimir um programa que é THE LENGTH OF YOUR SUBMISSION
+ 2
bytes de comprimento ... e assim por diante.
No entanto , quando seu programa atingir um comprimento de 2017 bytes, ele deve 2017
sair e sair.
Regras
- A saída do programa final deve ser
2017
e somente2017
. Pode ser uma string ou um número inteiro, mas deve ler2017
e não2017.0
ou0x7E1
ou outras bobagens desse tipo. - Sem brechas padrão .
- Somente seu programa inicial tem permissão para exigir entrada, que será adicionada ao seu número de bytes.
Portanto, se seu programa inicial tiver 324 caracteres e receber uma entrada de 13 bytes, sua pontuação total será 324 + 13 = 337 e o programa gerado por ele deverá ter 338 bytes.perl -X
No entanto, o uso de sinalizadores de linha de comando (por exemplo ) é bom - desde que o programa inicial e todos os programas gerados usem os mesmos sinalizadores. Além disso, eles também contam para o número total de bytes. Traços, barras, etc., na frente de um sinalizador de linha de comando não contam para o total, portanto,perl -X
contam como um byte adicional.
- Se você retornar uma função, ela deve ser uma função real e não uma sequência que, quando avaliada, produz uma função.
- Quines impróprios (se o seu programa for um quine) não serão permitidos.
Exemplo
Pseudocódigo, 99 bytes
IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE PADDING)
Seu envio pode funcionar de maneira diferente, desde que cumpra as regras acima.
;;;
permitido?