Criar uma impressora inteira versátil é bom e tudo mais, mas escrever um código único que imprime muitos números diferentes é complicado. Não seria mais fácil criar um script que gera um número, mas também fornece um novo script para obter o próximo número?
Desafio:
Escreva um código que produza um único número inteiro Ne um código executável. O próximo código deve ser exibido N+1e um código que pode ser exibido N+2. Continue esse caminho até chegar N = 15. (O último número impresso deve ser 15).
Regras:
- Nenhuma entrada (suponha que a entrada esteja vazia).
- Programa completo ou função ou outros formatos convenientes são permitidos.
- O primeiro código deve ser exibido
1. - Você não pode gerar zeros à esquerda. Ou seja, você não pode imprimir
01para1. - A saída deve estar no formato
N, Code_for_N+1. Observe que a saída é separada por vírgula e um espaço único. O código paraN+1não possui aspas.N , Code_for_N+1não é aceito (espaço na frente da vírgula). As novas linhas à direita estão OK. - O primeiro caractere (s) da saída deve ser o número. (Sem espaços à esquerda ou
ans = N). - O número impresso não deve fazer parte do próximo código (o código pode conter esse número, mas você não pode usar o número de saída como parte do código)
- Exemplo: A produção de
N=2pode ser:2, printer 2. Nesse caso,printer 2é o código paraN=3. Você não pode usar toda a saída:2, printer 2como código paraN=3.
- Exemplo: A produção de
- Os scripts podem estar em diferentes idiomas
- Os tipos de dados são irrelevantes (o número pode ser uma sequência), mas não pode ser cercado por nada (aspas, parênteses etc.).
- Se houver um código emitido para
N=15ele, ele deve imprimirSTOP!(consulte o bônus) ou não imprimir nada (nem mesmo um espaço ou nova linha).- O código para
N=15não pode falhar (mas a saída para STDERR está OK). - Você é desqualificado se o código de saída for
N=15impresso16ou qualquer outra coisa (exceto a caixa de bônus).
- O código para
- Operadores de quine embutidos não são permitidos.
- Não é permitido acessar o arquivo de origem através do sistema de arquivos.
Bônus:
-10 bytes se o código que imprime 15 também produz um código que imprime " STOP!"
Exemplos usando a sintaxe Python: (obviamente, eles funcionarão apenas para os números inteiros selecionados, não de 1 a 15.)
N = 1
print "1, print 2"
1, print 2
---
N = 15
print 15
15
---
N = 15 (Qualifies for the -10 bytes bonus)
print "15, print 'STOP!'"
15, print 'STOP!'
print 'STOP!'
STOP!
----
N = 15 (Qualifies for the -10 bytes bonus)
print "15, disp('STOP!')"
15, disp('STOP!') (disp('STOP!') outputs STOP! in MATLAB)
----
N = 15 (This one is not OK. The submission is disqualified)
print "15, print 16"
15, print 16
Regras de golfe padrão se aplicam! O menor código (para N = 1) em bytes ganha!
14, print(14+1)ou não?
f=>f+""seria inválido? (f+""Devolve o código de construção da função.)