Ihre Aufgabe ist es, ein Programm zu erstellen, das Folgendes tut:
- Sie sollten die Nummer nehmen. (Positiv, Negativ, Bruch ist Eingabe möglich)
- Wenn es negativ ist, kehren Sie das Quine um. und negiere diese Zahl (Werde positiv)
- Dann wiederholen Sie <ganzzahliger Teil der Eingabenummer> Mal und drucken <Etage (Bruchteil der Eingabenummer * Länge)> aus Ihrem Quellprogramm. Wenn es eine Ganzzahl ist, ist der Bruchteil Null.
-10% Bonus, wenn Ihr Programm kein Palindrom ist.
Beispiel
Wenn Ihr Programm "ABCDEFG" ist, dann
1.
5
ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG
Erläuterung
ABCDEFG fünfmal
2.
-2
GFEDCBAGFEDCBA
Erläuterung
GFEDCBA (umgekehrt ABCDEFG) 2 mal
3.
7.5
ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABC
Erläuterung
ABCDEFG 7-mal gefolgt von ABC (erste 3 (Etage (0,5 * 7) = Etage (3,5) = 3) Buchstabe auf ABCDEFG)
4.
-0.3
GF
Erläuterung
GFEDCBA (umgekehrtes ABCDEFG) 0-mal gefolgt von GF (erster 2 (Etage (0,3 * 7) = Etage (2,1) = 2) Buchstabe auf GFEDCBA (umgekehrtes ABCDEFG))
5.
0
<empty>
Erläuterung:
<leer> bedeutet hier, dass Ihr Programm nicht ausgegeben wird. ABCDEFG ist nullmal als leere Zeichenfolge definiert.
-
und.
manuell verarbeiten (wobei der Bruch als positive ganze Zahlen dargestellt wird). Oder Sie können Ihre Aufmerksamkeit auf die nächste Herausforderung lenken. ;) (Nicht jede Sprache kann an jeder Herausforderung teilnehmen, aber solange die Herausforderung nicht absichtlich einzelne Sprachen ausschließt, ist das völlig in Ordnung. Denken Sie nur an alle Herausforderungen bei der Audio- / Bildverarbeitung oder beim Dateisystem.)Antworten:
CJam,
2826 Bytes * 0,9 = 23,4Danke an Sp3000 für das Speichern von 2 Bytes.
Teste es hier.
Erläuterung
quelle
Vitsy, 34 * 0,9 = 30,6 Bytes
Vielen Dank an @ Sp3000 für den Hinweis auf einen Fehler in meinem Code!
Woo. Mein Physiklehrer erinnerte mich daran, dass ich Machtfunktionen hatte, die mir dabei halfen. Stelle dir das vor.
quelle
Perl, 104 Bytes - 10% = 93,6
102 Bytes + 2 Bytes für
-i
- 10%, da es sich nicht um ein Palindrom handelt. Die Eingabe wird als Argument an übergeben-i
(z-0.3
. B. oben).Wie es funktioniert
Diese Lösung basiert auf dem folgenden Quine:
Das funktioniert wie folgt. Stellen Sie
$_
zunächst die Zeichenfolge ein:Als nächstes rufen Sie an
eval
, was$_
standardmäßig funktioniert . Dies ruftprint
mit einem Argument ein Zeichenkettenliteral auf:Da diese Zeichenfolge in doppelte Anführungszeichen eingeschlossen ist, werden Variablen interpoliert. Nach der Interpolation
$_
lautet der Wert der Zeichenfolge:Beim Drucken wird Folgendes ausgegeben:
Das ist der Quellcode des Programms.
Das Schöne an diesem Quine ist, dass Sie beliebigen Code in den String einbetten können, um ihn zu verwenden
eval
.Hier ist eine Aufschlüsselung der vollständigen Lösung:
quelle
Mathematica, 139 - 10% = 125,1 Bytes
Beachten Sie das nachfolgende Leerzeichen. Das Leerzeichen, die Standardnotation usw. sind das Ergebnis der
ToString[#0, InputForm]
.quelle
Haskell, 158 * 0,9 = 142,2 Bytes
Eine quine Funktion.
quelle
Python 2, 193 Bytes - 10% = 173,7
Fehler auf
0
, aber wenn Sie STDERR ignorieren, erhalten Sie immer noch eine leere Ausgabe.quelle