Schreiben Sie ein Programm / eine Funktion, die zwei Ganzzahlen im Bereich von bis einschließlich akzeptiert und zurückgibt, ob die Binärformen der Zahlen genau ein Bit unterschiedlich sind.
Beispielsweise haben und Binärformen 00000001und 00000000, die ein Bit voneinander entfernt sind. In ähnlicher Weise und sind 010011000und 000011000, so sie wahr zurück.
Allerdings müssen SieCode sein pristine , so dasswenn jemand etwas in Ihrem Programm gekippt wird, sollte es einen Fehler aus. Wenn Ihr Programm beispielsweise das einzelne Bytea(01100001) ist, dann sind alle 8 möglichen geänderten Programme:
á ! A q i e c `
muss einen Fehler werfen. Vergewissern Sie sich, dass Sie eine Änderung nach Bytes vornehmen (z. B. árepräsentiert das obere Byte tatsächlich das Byte und nicht das tatsächliche Zwei-Byte-Zeichen á).
Testfälle:
0,1 => Truthy
1,0 => Truthy
152,24 => Truthy
10,10 => Falsey
10,11 => Truthy
11,12 => Falsey
255,0 => Falsey
Regeln:
- Stellen Sie ein Testframework bereit, mit dem Sie überprüfen können, ob Ihr Programm einwandfrei ist, da es eine Vielzahl möglicher Programme gibt (Anzahl der Bytes * 8) oder einen vollständigen Beweis der Unverfälschtheit.
- Bitte stellen Sie sicher, dass Ihr Programm gültig ist, bevor Sie es veröffentlichen.
- Die Ausgabe muss entweder wahrheitsgetreu / falsch sein (beides ist in Ordnung), oder es müssen zwei unterschiedliche fehlerfreie Werte angegeben werden
- Fehler können Laufzeit, Compiler, Interpreter etc. sein.
+1als die meisten meiner jüngsten Lösungen! : \