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 00000001
und 00000000
, die ein Bit voneinander entfernt sind. In ähnlicher Weise und sind 010011000
und 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.
+1
als die meisten meiner jüngsten Lösungen! : \