
Задача по теме: "Двоичные и десятичные алгоритмы"
На вход алгоритма подается натуральное число N. Алгоритм строит по нему новое число R следующим образом:
-
Из числа N вычитается остаток деления N на 4.
-
Строится двоичная запись полученного результата.
-
К этой записи дописываются справа еще два разряда по следующему правилу:
а) складываются все цифры построенной двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия - справа дописывается остаток от деления суммы ее цифр на 2.
Полученная таким образом запись является двоичной записью искомого числа R.
Укажите минимальное число R, большее 100, которое может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.


Решение:
Решение программой:
a = []
for x in range(1,1000):
n = bin(x-x%4)[2:]
n = n + str(n.count('1')%2)
n = n + str(n.count('1')%2)
if int(n,2) > 100:
a.append(int(n,2))
print(min(a))
Решение руками:
Число 101 в двоичной системе счисления - 1100101. Делая шаги в обратном порядке, получим, что число, после вычитания из него остатка деления его же на 4, должно быть кратным 4, и подходящее нам равняется 28. Тогда следуя алгоритму, получаем число 1110010, что равняется 114 в десятичной системе.
Ответ: 114
Сообщение об ошибке
Расскажите, в каком месте допущена ошибка, мы как можно быстрее её исправим. Спасибо за обратную связь!

МГ | Pro | ProMax | |
Практика на платформе | |||
Отслеживание прогресса обучения | |||
Двухуровневое домашнее задание после каждого вебинара | |||
Все материалы составлены экспертом ЕГЭ | |||
Персональный менеджер | |||
Личный куратор | |||
Разбор ошибок личным куратором | |||
Еженедельные созвоны с куратором для закрытия индивидуальных пробелов | |||
Составление индивидуального расписания |

счёта
средств
подтверждено!
Теперь вы можете приступить
к следующему уроку
курса по математике
замены
Для смены номера телефона
мы отправили Вам код по СМС,
введите его в поле ниже.
Электронная почта
На почту придет чек об оплатеНажимая кнопку "купить", Вы выражаете своё согласие с офертой оказания услуг и принимаете их условия
Здравствуйте!
Выберите информацию о себе ниже

Оплата прошла успешно!
