На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом:
- Строится двоичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
- а) если число чётное, то к двоичной записи слева дописывается 10;
- б) если число нечётное, то к двоичной записи слева дописывается 1 и справа дописывается 01.
- Полученная таким образом запись является двоичной записью искомого числа R.
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 4 = 1002 результатом является число 101002 = 20, а для исходного числа 5 = 1012 это число 1101012 = 53.
Укажите максимальное число R, которое может быть результатом данного алгоритма, при условии, что N не больше 12.
В ответе запишите это число в десятичной системе счисления.
Ответ:
ЕГЭ по информатике Основная волна 08.06.2024 kompege.ru – задание №5
Решение:
Объяснение решения задачи
Для решения данной задачи мы написали программу на языке Python, которая выполняет следующие шаги:
- Создаём пустой список
a. - Проходим по всем числам от 1 до 11 включительно (поскольку N не больше 12).
- Для каждого числа
iстроим его двоичную записьn(без префикса ‘0b’). - Если число чётное (проверка
i % 2 == 0), то слева к двоичной записи дописываем «10». - Если число нечётное, то слева к двоичной записи дописываем «1», а справа «01».
- Преобразуем полученную двоичную запись обратно в десятичное число и сохраняем его в переменной
r. - Если значение
rбольше 50, добавляем его в списокa. - После завершения цикла находим максимальное значение в списке
aи выводим его.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
a = [] for i in range(1, 12): n = bin(i)[2:] if i % 2 == 0: n = '10' + n else: n = '1' + n + '01' r = int(n, 2) if r > 50: a.append(r) print(max(a)) |
Таким образом, программа находит максимальное значение числа R, которое может быть результатом данного алгоритма при условии, что N не больше 12.
Ответ: 109
