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

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

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

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

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

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

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

Рассмотрим первое число = 127  . Переведем в двоичную сс и получим 11111112  . Отрубим две последние цифры и получим число нечетное, а значит должно было добавиться 01  . Значит не подходит.

Похоже это число мы сразу можем угадать. У нас есть 11111      2  и к нему должно добавить 01   2  . Получаем число 11111012 = 125  . (Число 126  также не подходит т.к. = 11111102  )

Решение №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
Оцените статью
Я решу все!