Fare una stampante intera versatile è bello e tutto, ma scrivere un singolo codice che stampa molti numeri diversi è ingombrante. Non sarebbe più facile creare uno script che produca un numero, ma ti dia anche un nuovo script per ottenere il numero successivo?
Sfida:
Scrivi un codice che genera un singolo numero intero Ne un codice eseguibile. Il codice successivo dovrebbe essere generato N+1e un codice in grado di produrre N+2. Continua questo percorso fino a raggiungere N = 15. (L'ultimo numero stampato dovrebbe essere 15).
Regole:
- Nessun input (supponiamo che l'input sia vuoto).
- Sono consentiti programma completo o funzione o altri formati convenienti.
- Il primo codice dovrebbe essere generato
1. - Non è possibile generare zeri iniziali. Cioè non è possibile stampare
01per1. - L'output deve essere nel formato
N, Code_for_N+1. Si noti che l'output è separato da una virgola e da un singolo spazio. Il codice perN+1non ha virgolette circostanti.N , Code_for_N+1non è accettato (spazio davanti alla virgola). Le nuove righe finali sono OK. - Il primo carattere (i) dell'output deve essere il numero. (Nessuno spazio iniziale o
ans = N). - Il numero stampato non dovrebbe far parte del codice successivo (il codice può contenere questo numero, ma non puoi prendere il numero di output come parte del codice)
- Esempio: L'uscita
N=2può essere:2, printer 2. In questo caso,printer 2è il codice perN=3. Non è possibile utilizzare l'intero output:2, printer 2come codice perN=3.
- Esempio: L'uscita
- Gli script possono essere in diverse lingue
- I tipi di dati sono irrilevanti (il numero può essere una stringa), ma non può essere circondato da nulla (virgolette, parentesi ecc.).
- Se viene emesso un codice per
N=15allora deve stampareSTOP!(vedi bonus) o non stampare nulla (nemmeno uno spazio o una nuova riga).- Il codice per
N=15non può andare in crash (ma l'output su STDERR è OK). - Sarai squalificato se il codice di output per
N=15stampe16o altro (tranne il caso bonus).
- Il codice per
- Gli operatori Quine integrati non sono ammessi.
- L'accesso al file di origine tramite il file system non è consentito.
Bonus:
-10 byte se il codice che stampa 15 produce anche un codice che stampa " STOP!"
Esempi usando la sintassi di Python: (ovviamente, funzioneranno solo per gli interi selezionati, non da 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
Si applicano le regole del golf standard! Il codice più piccolo (per N = 1) in byte vince!
14, print(14+1)o no?
f=>f+""sarebbe valido? (f+""restituisce il codice di costruzione della funzione.)