На вход алгоритма подаётся натуральное число М. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа м.
2. Затем справа дублируется последняя цифра два раза.
3. Если количество единиц получилось чётным, то справа дописывается цифра 1, иначе справа дописывается
цифра 0.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа м) является
двоичной записью искомого числа R.
Укажите минимальное число N, после обработки которого автомат получает число R, большее 76. В ответе
найденное число и запишите в десятичной системе.
Ответы
Ответ дал:
1
Ответ:
Очевидно 77 не могло получиться так же как 78, но могло 79:
Тут 4 единицы => верно, что в конце 1.
Далее 2 единицы есть дублирование последней 1 числа 1001.
Десятичный вид этого числа 9.
Как видим решение тривиальное.
Можно решить кодом:
for i in range(10):
s = bin(i)[2:]
s += 2 * s[-1]
if s.count('1') % 2 == 0:
s += '1'
else:
s += '0'
if int(s, 2) > 76:
print(i)
break
Вас заинтересует
2 года назад
2 года назад
2 года назад
7 лет назад
7 лет назад