
Задача по теме: "Двоичные и десятичные алгоритмы"
Условие:
На вход алгоритма подается натуральное число N. Алгоритм строит по нему новое число R следующим образом:
-
Строится двоичная запись числа N.
-
Далее если исходное число четное, то справа к построенной двоичной записи числа N приписывается 0, если нечетное, то приписывается 1.
-
Далее полученная на втором шаге алгоритма запись обрабатывается по следующему правилу:
а) если количество единиц в двоичной записи кратно трем, то в этой записи два левых разряда заменяются на 11;
б) если количество единиц в двоичной записи некратно трем, то в этой записи два левых разряда заменяются на 10.
Полученная таким образом запись является двоичной записью искомого числа R.
Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 310 = 112 результатом является число 1112 = 710.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, не большее, чем 37. В ответе запишите это число в десятичной системе счисления.

Решение:
Решение с помощью программы:
for x in range(1,1000):
n = bin(x)[2:]
if x%2 == 0:
n = n + '0'
else:
n = n + '1'
if n.count('1')%3 == 0:
n = '11' + n[2:]
else:
n = '10' + n[2:]
if int(n,2) <= 37:
print(x)
Решение руками:
Так как число 37 в двоичной - 100101, и нам нужно меньше или равное 37, то, делая шаг назад по алгоритму, нам подходит число 110011, потому что число единиц не кратно 3 (следовательно, два левых разряда заменятся на 10). Делая еще один шаг назад, мы получаем число 11001, и если проверить его на четность, то оно будет нечетное и, соответственно, в конце припишем 1. В итоге получаем число 11001, что равно 25 в десятичной системе счисления.
Ответ: 25
Сообщение об ошибке
Расскажите, в каком месте допущена ошибка, мы как можно быстрее её исправим. Спасибо за обратную связь!

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

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

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