Diese Herausforderung wird Ihnen durch echte (und tragische) Inspiration gebracht. Vor kurzem war die Zahlenreihe auf meiner Tastatur etwas sporadisch. Die Schlüssel 1-9
funktionieren manchmal - aber manchmal haben sie kein Ergebnis. Als begeisterter Programmierer ist das schrecklich! (Sehen Sie dieses Ausrufezeichen? So wissen Sie, dass sie gerade funktionieren.) Ich brauche oft nicht nur die Zahlen selbst, sondern auch die Symbole!@#$%^&*(
sind auch die halbe Zeit völlig ineffektiv! Als C-Programmierer war ich mehr daran interessiert, das Problem zu umgehen, als mir die Zeit zu nehmen, mich mit Code zu beschäftigen, um meinen Laptop zu reparieren. In den letzten Wochen wurden langsam alle Zahlenliterale in meinem Code durch Hexadezimalzahlen ersetzt, damit ich nicht nach Zahlen suchen muss, die kopiert und eingefügt werden können. Einige Zahlen sind jedoch ohne die Tasten nicht einfach einzugeben 1-9
. Zum Beispiel kann die Zahl 1
nicht so einfach hexadezimal geschrieben werden, und ich habe auf das Ersetzen von 1
s in meinem Code durch zurückgegriffen 0xF - 0xE
. Die einzigen Tasten , die betroffen sind 1-9
, so dass ich vollen Gebrauch von Symbolen wie halten +
, -
und /
. Ich kann jedoch keine Multiplikation oder Klammern verwenden, da*
und (
sind oft kaputt. Dies führt zu Ihrer Herausforderung.
Eingang
Eine Ganzzahl, die n
mit stdin oder der Entsprechung Ihrer Sprache übereinstimmt. Wenn Sie möchten, kann der Ganzzahl eine neue Zeile oder ein anderes Leerzeichen vorangestellt oder gefolgt werden. Alternativ können Sie Eingaben über ein Befehlszeilenargument erhalten.
Ihr Programm sollte korrekt auf negative Eingaben reagieren und mindestens 32-Bit-Ganzzahlen mit Vorzeichen verarbeiten können.
Ausgabe
Ihr Programm sollte in einer beobachtbaren Form den kürzesten (in Leerzeichen) möglichen Weg ausgeben, um die Zahl n
als Summe, Differenz oder Division eines oder mehrerer Hexadezimalwerte zu schreiben . Es gibt mehr als eine Möglichkeit, dieses Problem zu lösen, und Sie müssen keine Ausgabe gleicher Länge gegenüber einer anderen bevorzugen.
Die Ausgabe sollte in der Form erfolgen, A % A % A...
bei der A
es sich um einen Hexadezimalwert handelt 0x
, der nur Ziffern enthält A-F a-f
und %
eines der Symbole ist -+/
. /
Beschreiben wir die ganzzahlige Division, nicht die Gleitkommazahl.
(Beachten Sie, dass Ihre Ausgabe n
bei der Auswertung von Divisionen zuerst von links nach rechts und dann von links nach rechts zu Additionen und Subtraktionen führen sollte, wie es die Konvention vorsieht.)
Testfälle
Input-Output
1
0xF - 0xE
(oder0xF-0xE
oder0xB-0xA
oder0xd - 0xc
oder0xF/0xF
)15
0xF
255
0xFF
30
0xF + 0xF
Wertung und Regeln
Das ist Code-Golf. Ihre vorläufige Bewertung ist die Anzahl der Bytes in Ihrer Quelldatei.
Sie dürfen KEINE der Ziffern 1-9
in Ihrer Quelle verwenden.
Sie KÖNNEN !@#$%^&*(
in Ihrer Quelle Symbole verwenden, aber für jedes werden Sie mit einer Strafe von +20 für Ihre Punktzahl bestraft.
Ihr Programm kann durch eine Funktion ersetzt werden, die n
als Argument verwendet wird, solange diese Funktion eine von Menschen lesbare Ausgabe erzeugt. Der Rückgabewert Ihrer Funktion zählt NICHT als Ausgabe.
Standardlücken sind nicht erlaubt.
Die niedrigste Punktzahl gewinnt! Viel Glück!
Habe ich etwas in Bezug auf Formatierung / Fragen / Klarheit vermasselt? Gib mir Bescheid! Dies ist meine erste Einreichung auf dieser Seite!