Hacer una impresora entera versátil es agradable y todo, pero escribir un solo código que imprima muchos números diferentes es engorroso. ¿No sería más fácil crear un guión que genere un número, pero que también le proporcione un nuevo guión para obtener el siguiente número?
Reto:
Escriba un código que genere un único entero Ny un código ejecutable. El siguiente código debe salir N+1y un código que puede salir N+2. Continúa este camino hasta llegar N = 15. (El último número impreso debe ser 15).
Reglas:
- Sin entrada (suponga que la entrada está vacía).
- Se permite un programa o función completa u otros formatos convenientes.
- El primer código debería salir
1. - No puede generar ceros a la izquierda. Es decir, no se puede imprimir
01para1. - La salida debe estar en el formato
N, Code_for_N+1. Tenga en cuenta que la salida está separada por una coma y un solo espacio. El código paraN+1no tiene comillas circundantes.N , Code_for_N+1no se acepta (espacio delante de la coma). Las nuevas líneas finales están bien. - Los primeros caracteres de la salida deben ser el número. (Sin espacios iniciales, o
ans = N). - El número impreso no debe ser parte del siguiente código (el código puede contener este número, pero no puede tomar el número de salida como parte del código)
- Ejemplo: La salida para
N=2puede ser:2, printer 2. En este caso,printer 2es el código paraN=3. No puede usar toda la salida:2, printer 2como código paraN=3.
- Ejemplo: La salida para
- Los guiones pueden estar en diferentes idiomas.
- Los tipos de datos son irrelevantes (el número puede ser una cadena), pero no puede estar rodeado de nada (comillas, paréntesis, etc.).
- Si se emite un código
N=15, debe imprimirseSTOP!(ver bonificación) o no imprimir nada (ni siquiera un espacio o una nueva línea).- El código para
N=15no puede bloquearse (pero la salida a STDERR está bien). - Usted está descalificado si el código de salida para
N=15impresiones16o cualquier otra cosa (excepto el caso de bonificación).
- El código para
- Los operadores de quine incorporados no están permitidos.
- No está permitido acceder al archivo fuente a través del sistema de archivos.
Prima:
-10 bytes si el código que imprime 15 también produce un código que imprime " STOP!"
Ejemplos que usan la sintaxis de Python: (obviamente, estos solo funcionarán para los enteros seleccionados, no del 1 al 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
Se aplican las reglas estándar de golf. ¡El código más pequeño (para N = 1) en bytes gana!
14, print(14+1)o no?
f=>f+""¿sería inválido? (f+""devuelve el código de construcción de la función).