Предмет: Информатика, автор: Obernikhin

На вход алгоритма подаётся натуральное число М. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа м.
2. Затем справа дублируется последняя цифра два раза.
3. Если количество единиц получилось чётным, то справа дописывается цифра 1, иначе справа дописывается
цифра 0.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа м) является
двоичной записью искомого числа R.
Укажите минимальное число N, после обработки которого автомат получает число R, большее 76. В ответе
найденное число и запишите в десятичной системе.

Ответы

Автор ответа: MrSolution
1

Ответ:

Очевидно 77 не могло получиться так же как 78, но могло 79:

79_{10}=1001111_2\\100111

Тут 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

Похожие вопросы
Предмет: Английский язык, автор: малая155
Предмет: Русский язык, автор: тащерка2
Предмет: Математика, автор: KsyushkaDog