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 N
e um código executável. O próximo código deve ser exibido N+1
e 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
01
para1
. - 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+1
não possui aspas.N , Code_for_N+1
nã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=2
pode ser:2, printer 2
. Nesse caso,printer 2
é o código paraN=3
. Você não pode usar toda a saída:2, printer 2
como 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=15
ele, 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=15
não pode falhar (mas a saída para STDERR está OK). - Você é desqualificado se o código de saída for
N=15
impresso16
ou 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.)