ЕГЭ · ЗАДАНИЕ 5
Алгоритмы обработки чисел · №12237
Натуральное N. Строится двоичная запись N. Для чётного N справа дописывают последние две цифры. Для нечётного — слева 1 и справа 0. R — десятичное значение результата. Найдите максимальное N при R < 100. Ответ запишите в десятичной системе.
Источник задания
Сначала попробуй решить самостоятельно, затем открой разбор. Для автоматической проверки ответа включи JavaScript.
Показать решение по шагам
Разбор решения
Ответ: 24
Сначала постройте R для одного N по ветвям условия. В проверке используем r < 100; в список кладём n, потому что ответом требуется именно N. Затем берём максимум. Алгоритм дописывает цифры и даёт R ≥ N. При N ≥ 100 верхняя граница на R уже невыполнима.
def get_r(n):
s = bin(n)[2:]
s = s + s[-2:] if n % 2 == 0 else '1' + s + '0'
return int(s, 2)
answers = []
for n in range(1, 100):
r = get_r(n)
if r < 100:
answers.append(n)
print(max(answers))