Напишите программу / функцию, которая принимает два целых числа в диапазоне от до включительно и возвращает информацию о том, отличаются ли двоичные формы чисел от одного бита.
Например, и имеют двоичные формы и , которые находятся на расстоянии одного бита. Аналогично, и равны и , поэтому они возвращают истину.00000001
00000000
010011000
000011000
Тем не менее , ваш код должен быть нетронутым , так что если какой-либо бит в вашей программе будет перевернут, он должен выдать ошибку. Например, если ваша программа была одиночной bytea
(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), или полное доказательство подлинности.
- Пожалуйста, убедитесь, что ваша программа действительна, прежде чем публиковать ее.
- Вывод должен быть либо true / falsey (в любом случае это нормально), либо два разных значения без ошибок
- Ошибки могут быть во время выполнения, компилятор, интерпретатор и т. Д.
+1
чем большинство моих недавних решений! : \