Задание №5 ЕГЭ Информатика с ответом и решением
Ответ: 88
Условие
Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N.
2. Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
3. Полученное число переводится в десятичную запись и выводится на экран.
Пример. Дано число N = 58. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 111010.
2. Запись справа налево: 10111 (ведущий ноль отброшен).
3. На экран выводится десятичное значение полученного числа 23.
Какое наибольшее число, не превышающее 100, после обработки автоматом даёт результат 13?
Подсказки — как подойти к решению
- Разверни алгоритм: результат — это перевёрнутая двоичная запись исходного числа, значит исходную запись можно получить переворотом записи результата. Учитывай, что при перевороте ведущие нули пропадают.
- К записи результата можно приписывать нули справа: после переворота они станут ведущими и исчезнут. Перебери такие варианты и выбери наибольший, который ещё не превышает ограничение из условия.
Решение
Рассмотрим действия алгоритма в обратном порядке. Переведём 13 в двоичную систему счисления: 1310 = 1101. Рассмотрим числа, из которых можно получить данное число.
10112 = 1110.
1 01102 = 2210.
10 11002 = 4410.
101 10002 = 8810.
1011 00002 = 17610.
Таким образом, наибольшее число, удовлетворяющее условию задачи равно 88.
Ответ: 88.
Приведём другое решение на языке Python.
for n in range(100, 1, -1):
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
s = s[::-1]
s = s[s.find('1'):]
r = int(s, 2) # перевод в десятичную систему
if r == 13:
print(n)
break
Приведём решение Никиты Юрлова на языке Python.
for n in range(100, 1, -1):
s = bin(n)[2:]
s = s[::-1]
k = int(str(int(s)), 2)
if k == 13:
print(n)
break
Типичные ошибки
- Ты остановился на одном из промежуточных вариантов. Из-за отбрасывания ведущих нулей к результату можно приписать ещё несколько нулей справа и получить большее исходное число — проверяй варианты, пока не упрёшься в ограничение.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №5 по информатике