Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-8035
- Просмотры: 1129
- Изменено: 6 апреля 2025
(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится \(20\)-ричная запись числа \(N.\)
- Каждая цифра этой записи увеличивается на \(1,\) а если числовое значение цифры уже равно \(19,\) то такая цифра заменяется на \(0.\)
- В начало числа записывается последняя цифра двоичной записи числа \(N.\)
- Из записи удаляются незначащие нули.
Полученная таким образом запись является \(20\)-ричной записью искомого числа \(R.\) Например, для исходного числа \(265 = D5_{20}\) результатом является число \(1E6_{20} = 686,\) а для исходного числа \(66 = 36_{20}\) результатом является число \(47_{20} = 87.\) Найдите наименьшее число \(N,\) такое что \(20\)-ричная запись результата работы алгоритма \(R\) содержит не менее трёх разрядов и хотя бы два из них записываются латинскими буквами.
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '0123456789ABCDEFGHIJ'
while n:
ans = alph[n % 20] + ans
n //= 20
return ans
def R(N):
alph = '0123456789ABCDEFGHIJ'
d = [alph[(int(x, 20) + 1) % 20] for x in conv(N)]
ans = str(N % 2) + ''.join(d)
return conv(int(ans, 20))
#print(R(265), R(66))
for N in range(1000):
ns = R(N)
if len(ns) > 2 and sum(x in 'ABCDEFGHIJ' for x in ns) > 1:
print(N)
break
Ответ: \(189\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


