Fabriquer une imprimante entière polyvalente est agréable et tout, mais écrire un seul code qui imprime beaucoup de nombres différents est lourd. Ne serait-il pas plus facile de créer un script qui génère un nombre, mais vous donne également un nouveau script pour obtenir le nombre suivant?
Défi:
Écrivez un code qui produit un seul entier N
et un code exécutable. Le code suivant devrait sortir N+1
et un code qui peut sortir N+2
. Continuez ce chemin jusqu'à ce que vous atteigniez N = 15
. (Le dernier numéro imprimé doit être 15).
Règles:
- Aucune entrée (supposez que l'entrée est vide).
- Un programme ou une fonction complète ou d'autres formats pratiques sont autorisés.
- Le premier code devrait sortir
1
. - Vous ne pouvez pas générer de zéros non significatifs. -À- dire que vous ne pouvez pas imprimer
01
pour1
. - La sortie doit être au format
N, Code_for_N+1
. Notez que la sortie est séparée par une virgule et un seul espace. Le code deN+1
n'a pas de guillemets.N , Code_for_N+1
n'est pas accepté (espace devant la virgule). Les retours à la ligne de fin sont OK. - Le ou les premiers caractères de la sortie doivent être le nombre. (Pas d'espaces de tête, ou
ans = N
). - Le numéro imprimé ne doit pas faire partie du code suivant (le code peut contenir ce numéro, mais vous ne pouvez pas prendre le numéro de sortie comme faisant partie du code)
- Exemple: La sortie
N=2
peut être:2, printer 2
. Dans ce cas,printer 2
est le code pourN=3
. Vous ne pouvez pas utiliser la sortie entière:2, printer 2
comme code pourN=3
.
- Exemple: La sortie
- Les scripts peuvent être dans différentes langues
- Les types de données ne sont pas pertinents (le nombre peut être une chaîne), mais il ne peut être entouré de rien (guillemets, parenthèses, etc.).
- S'il y a un code sorti,
N=15
il doit soit imprimerSTOP!
(voir bonus), soit ne rien imprimer du tout (pas même un espace ou une nouvelle ligne).- Le code de
N=15
ne peut pas planter (mais la sortie vers STDERR est OK). - Vous êtes disqualifié si le code de sortie pour les
N=15
impressions16
ou toute autre chose (sauf le cas bonus).
- Le code de
- Les opérateurs de quine intégrés ne sont pas autorisés.
- L'accès au fichier source via le système de fichiers n'est pas autorisé.
Prime:
-10 octets si le code qui imprime 15 produit également un code qui imprime " STOP!
"
Exemples utilisant la syntaxe Python: (évidemment, cela ne fonctionnera que pour les entiers sélectionnés, pas de 1 à 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
Les règles de golf standard s'appliquent! Le plus petit code (pour N = 1) en octets gagne!
14, print(14+1)
ou non?
f=>f+""
serait invalide? (f+""
renvoie le code de construction de la fonction.)