Напишіть програму / функцію, яка приймає два цілих числа в діапазоні від до включно і повертає, чи двійкові форми чисел точно на один біт.
Наприклад, і мають бінарні форми і , які є один біт. Так само і є, і тому вони повертаються справжніми.00000001
00000000
010011000
000011000
Однак ваш код повинен бути незайманим , таким чином, якщо будь-який біт у вашій програмі перевернутий, він може призвести до помилки. Наприклад, якщо у вашій програмі був один байтa
(01100001
), то всі 8 можливих модифікованих програм:
á ! A q i e c `
повинен викинути помилку. Переконайтеся, що ви змінюєте байти (наприклад á
, там, де насправді є байт , а не два байти ).á
Тестові приклади:
0,1 => Truthy
1,0 => Truthy
152,24 => Truthy
10,10 => Falsey
10,11 => Truthy
11,12 => Falsey
255,0 => Falsey
Правила:
- Надайте тестовий фреймворк, який зможе переконатися, що ваша програма належним чином, оскільки буде багато можливих програм (кількість байтів * 8), інакше повний доказ первозданності.
- Будь ласка, переконайтесь, що ваша програма діє перед її публікацією.
- Вихідні дані повинні бути або truthy / falsey (або навпаки, це добре), або ще два чіткі значення помилки
- Помилками можуть бути час виконання, компілятор, інтерпретатор тощо.
+1
s, ніж більшість моїх останніх рішень! : \