Die Erstellung eines vielseitigen Ganzzahldruckers ist praktisch, aber das Schreiben eines einzelnen Codes, der viele verschiedene Zahlen druckt, ist umständlich. Wäre es nicht einfacher, ein Skript zu erstellen, das eine Zahl ausgibt, Ihnen aber auch ein neues Skript zum Abrufen der nächsten Zahl bietet?
Herausforderung:
Schreiben Sie einen Code, der eine einzelne Ganzzahl Nund einen ausführbaren Code ausgibt . Der nächste Code sollte ausgegeben werden N+1und ein Code, der ausgegeben werden kann N+2. Folgen Sie diesem Weg bis Sie erreichen N = 15. (Die zuletzt gedruckte Nummer sollte 15 sein).
Regeln:
- Keine Eingabe (vorausgesetzt, die Eingabe ist leer).
- Volles Programm oder Funktion oder andere bequeme Formate sind erlaubt.
- Der erste Code sollte ausgegeben werden
1. - Sie können keine führenden Nullen ausgeben. Dh Sie können nicht drucken
01zu1. - Die Ausgabe muss im Format sein
N, Code_for_N+1. Beachten Sie, dass die Ausgabe durch ein Komma und ein einzelnes Leerzeichen getrennt ist. Der Code fürN+1hat keine umgebenden Anführungszeichen.N , Code_for_N+1wird nicht akzeptiert (Leerzeichen vor dem Komma). Nachgestellte Zeilenumbrüche sind in Ordnung. - Die ersten Zeichen der Ausgabe müssen die Nummer sein. (Keine führenden Leerzeichen oder
ans = N). - Die gedruckte Nummer sollte nicht Teil des nächsten Codes sein (der Code kann diese Nummer enthalten, aber Sie können die ausgegebene Nummer nicht als Teil des Codes verwenden)
- Beispiel: Der Ausgang
N=2kann sein:2, printer 2. In diesem Fallprinter 2ist der Code fürN=3. Sie können nicht die gesamte Ausgabe verwenden:2, printer 2als Code fürN=3.
- Beispiel: Der Ausgang
- Die Skripte können in verschiedenen Sprachen vorliegen
- Die Datentypen sind irrelevant (die Nummer kann eine Zeichenfolge sein), sie dürfen jedoch nicht von irgendetwas umgeben sein (Anführungszeichen, Klammern usw.).
- Wenn ein Code für ausgegeben
N=15wird, muss er entweder gedruckt werdenSTOP!(siehe Bonus) oder er darf überhaupt nichts drucken (nicht einmal ein Leerzeichen oder eine neue Zeile).- Der Code für
N=15kann nicht abstürzen (aber die Ausgabe an STDERR ist in Ordnung). - Sie werden disqualifiziert, wenn der Ausgabecode für
N=15Drucke16oder etwas anderes (mit Ausnahme des Bonusfalls).
- Der Code für
- Eingebaute Quine-Operatoren sind nicht erlaubt.
- Der Zugriff auf die Quelldatei über das Dateisystem ist nicht zulässig.
Bonus:
-10 Byte, wenn der Code, der 15 ausgibt, auch einen Code erzeugt, der " STOP!" ausgibt
Beispiele mit Python-Syntax: (Diese funktionieren natürlich nur für die ausgewählten Ganzzahlen, nicht für 1 bis 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
Es gelten die üblichen Golfregeln! Kleinster Code (für N = 1) in Bytes gewinnen!
14, print(14+1)oder nicht?
f=>f+""wäre sagen wir, ungültig? (f+""Gibt den Konstruktionscode der Funktion zurück.)