Задача к ЕГЭ по информатике на тему «Запись числа в двоичной системе счисления» №4

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

1) Строится двоичная запись числа N

2) К этой записи дописываются разряды по следующему правилу:

а) если число чётное, то к двоичной записи числа в конце дописывается 11

б) если число нечётное, то к двоичной записи числа в конце дописывается 01

Полученная таким образом запись является двоичной записью искомого числа R  . Укажите наибольшее число   R  , меньшее 128  , которое может получиться после обработки этого алгоритма. В ответе запишите это число в десятичной записи.

Решение №1

Рассмотрим первое максимально возможное число R  , меньшее 128  , а именно 127  . Переведем в двоичную систему счисления и получим 1111111       2  . Уберём две последние цифры и получим нечетное число, а значит к исходному числу N  должно было добавиться 01  . Значит, число R = 127  не могло получиться в результате работы алгоритма.

Теперь мы сразу можем угадать число R  . У нас есть 111112  , и к нему нужно добавить 012  . Получаем число 11111012 = 125  .

 

Решение №2

ans = 0
for i in range(1000):
    s = bin(i)[2::]
    if i % 2 == 0:
        s += ’11’
    else:
        s += ’01’
    if int(s, 2) < 128:
        ans = max(ans, int(s, 2))
print(ans)

Ответ: 125
Оцените статью
Я решу все!