Deine Herausforderung besteht darin, 5 verschiedene vollständige Programme für die 5 folgenden Aufgaben zu schreiben:
Drucken
Hello, World!
Bei einer Eingabe mit STDIN und Ausgabe der Fakultät kann davon ausgegangen werden, dass die Eingabe eine Ganzzahl> = 0 ist
Berechnen Sie bei einer ganzen Zahl N die Summe der Primzahlen <= N
Bei einer Eingabe mit STDIN geben Sie die in der Eingabe verwendeten Buchstaben aus. Zum Beispiel: Die Eingabe ist
Hello world
, müssen Sie ausgebenhelowrd
. Beachten Sie, dass die Ausgabe in Kleinbuchstaben erfolgt. Sie können davon ausgehen, dass die Eingabe bei Whitespaces immer alphabetisch ist, die Whitespaces werden ignoriert.Gib den folgenden Diamanten genau so aus:
* *** ***** ******* ***** *** *
All diese Herausforderungen sind wahrscheinlich sehr einfach, aber es gibt einen Haken. Jeder Buchstabe, den Sie verwenden, kann in den anderen Programmen nicht mehr verwendet werden. Dies ist nicht verboten, führt jedoch zu einer Strafe von +8 Bytes . Wenn dies beispielsweise Ihr Programm für die erste Aufgabe ist:
print("Hello, World!");
Dann können Sie nicht die folgenden Buchstaben (in Groß- oder Klein Form): p
, r
, i
, n
, t
, h
, e
, l
, o
, w
, d
in den anderen Programmen. Wenn Sie sie verwenden müssen, können Sie jeden Buchstaben für 8 Bytes "kaufen". Wenn Sie den Buchstaben also l
erneut in einem anderen Programm verwenden möchten , erhalten Sie eine Strafe von 8 Byte. Nachdem Sie die Strafe bezahlt haben, können Sie in diesem Programm jeden Buchstaben so oft verwenden, wie Sie möchten. Andere Charaktere spielen keine Rolle. Außerdem sollten alle 5 Programme in derselben Sprache sein.
Das ist Code-Golf , also gewinnt die geringste Anzahl von Bytes!
quelle
Antworten:
CJam, 73 Bytes
Jede Zeile ist ein vollständiges Programm. Probieren Sie sie online aus: 1 | 2 | 3 | 4 | 5
Buchstabenkarte
Wenn Sie möchten (und jedes Ihrer Programme in eine Zeile passt), können Sie mit diesem CJam-Programm eine Buchstabenübersicht für Ihre eigene Einreichung erstellen.
quelle
Pyth, 90 Bytes
Erster Versuch...
Aufgabe 1: 20 Bytes
Aufgabe 2, 3 Bytes
Aufgabe 3, 9 Bytes
Aufgabe 4, 6 + 8 = 14 Bytes
Aufgabe 5, 44 Bytes
quelle
osascript, 759 Bytes
Ich wusste, dass dies eine Menge werden würde, als ich anfing. oo
Aufgabe 1: 15 Bytes
Ich wusste, dass es von diesem Punkt an schlimm werden würde.
Aufgabe 2: 64 + 8 * 4 = 96 Bytes
Oh gawd.
Aufgabe 3: 170 + 8 * 13 = 274 Bytes
Dennis war außer sich.
Aufgabe 4: 225 + 8 * 13 = 329
...
Schritt 5: 45 Bytes
Also ja. Ich wusste von Anfang an, dass ich verlieren würde. Aber es war interessant, es würde mich interessieren, ob es einen Weg gibt, dies mit weniger Charakteren zu tun. Zeichentabelle (wie von Dennis bereitgestellt):
Die oben angegebene Zeichenanzahl ist geringfügig falsch - bei Zeilenumbrüchen wurden Probleme festgestellt, da die Zeilenumbrüche nicht gezählt wurden.
ANMERKUNG: Der Grund dafür,
a's characters
dass'
solche Dinge nicht verwendet werden, ist, dass das Zeichen verwendet werden muss, wenn es über die JavaScript-Befehlszeile ausgeführt wird. Wenn ich verwendet hätte'
, müsste ich verwenden\'
oder etwas ähnliches, was mir überhaupt nicht geholfen hätte. Außerdem erkennt es nur"
als String Capturer, so dass ich irgendwie auch dort geschraubt wurde. Aber das hat Spaß gemacht.quelle
NARS2000 APL, 144 Bytes (85 Zeichen)
Aufgabe 1, 21 Bytes (17 Zeichen)
Aufgabe 2, 10 Bytes (4 Zeichen)
Aufgabe 3, 22 Bytes (11 Zeichen)
Aufgabe 4, 53 Bytes (29 Zeichen)
Aufgabe 5, 38 Bytes (24 Zeichen)
quelle
⎕
außerhalb einer REPL gedruckt werden soll.Jelly , 46 Bytes (nicht konkurrierend)
Probieren Sie es online! (Kopieren Sie jedes Snippet und fügen Sie es ein.)
Anscheinend hat die Einschränkung das Golfen nicht eingeschränkt :) Nur Vorschläge für den letzten, natürlich, bitte.
quelle