Site icon Информатика Эксперт

Е5.54 Укажите минимальное число R, которое превышает число 75

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

  1. Строится двоичная запись числа N.
  2. К этой записи дописываются справа ещё два разряда по следующему правилу:
    • а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
    • б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на 2.
  3. Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
  4. Результат переводится в десятичную систему и выводится на экран.

Укажите минимальное число R, которое превышает число 75 и может являться результатом работы данного алгоритма.

В ответе запишите это число в десятичной системе счисления.

Ответ:

 

ЕГЭ по информатике Основная волна (Центр) 19.06.2024 kompege.ru – задание №5 

Решение:

Решение на Python — Митаева Зарина Талгатовна

Рассмотрим алгоритм решения задачи:

  1. Создаем пустой список a, в который будем добавлять все числа, превышающие 75 и соответствующие условиям задачи.
  2. Проходимся по всем числам n от 1 до 999 (так как в задаче сказано, что минимальное число R, превышающее 75, нужно найти).
  3. Для каждого числа n строим его двоичную запись, убирая префикс «0b» с помощью bin(n)[2:].
  4. Считаем количество единиц в двоичной записи числа b:
    • Если количество единиц четное, то дописываем в конец b ноль.
    • Если количество единиц нечетное, то дописываем в конец b единицу.
  5. Снова считаем количество единиц в обновленной двоичной записи b:
    • Если количество единиц четное, то дописываем в конец b ноль.
    • Если количество единиц нечетное, то дописываем в конец b единицу.
  6. Преобразуем полученную двоичную запись b в десятичное число с помощью int(b, 2).
  7. Если полученное число r больше 75, добавляем его в список a.
  8. После завершения цикла выводим минимальное число из списка a с помощью min(a).

 

Ответ: 78

Exit mobile version