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+ 1bytes.
Quando esse programa é executado, ele irá imprimir um programa que é THE LENGTH OF YOUR SUBMISSION+ 2bytes de comprimento ... e assim por diante.
No entanto , quando seu programa atingir um comprimento de 2017 bytes, ele deve 2017sair e sair.
Regras
- A saída do programa final deve ser
2017e somente2017. Pode ser uma string ou um número inteiro, mas deve ler2017e não2017.0ou0x7E1ou 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 -XNo 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 -Xcontam 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?