Задание №14 ЕГЭ Информатика с ответом и решением
Ответ: 470402599
Условие
Операнды арифметического выражения записаны в системе счисления с основанием 19:
98 x 79 641_19 плюс 36 x14_19 плюс 73x4_19.
В записи чисел переменной х обозначена неизвестная цифра из алфавита 19-ричной системы счисления. Определите наибольшее значение х, при котором значение данного арифметического выражения кратно 18. Для найденного значения х вычислите частное от деления значения арифметического выражения на 18 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Подсказки — как подойти к решению
- Перебирай неизвестную цифру по всему алфавиту системы: в 19-ричной системе значения от 10 до 18 записываются латинскими буквами.
- Каждое из трёх слагаемых собирай строкой с подставленным символом и переводи в десятичную систему, а затем складывай все три значения.
- Подходящих цифр может оказаться несколько: раз нужно наибольшее значение x, просматривай алфавит до конца (или сохраняй все подходящие варианты) и только потом выбирай ответ; в ответ идёт частное от деления.
Решение
Приведём решение на языке Python.
maxi = []
for x in "0123456789ABCDEFGHI":
x1 = '98' + str(x) + '79641'
x2 = '36' + str(x) + '14'
x3 = '73' + str(x) + '4'
res = int(x1, 19) + int(x2, 19) + int(x3, 19)
if res % 18 == 0:
res = res // 18
maxi.append(res)
print(max(maxi))
Ответ: 470402599.
Приведём другое решение на языке Python.
maxi = []
for num in range(19):
a = list(reversed([9, 8, num, 7, 9, 6, 4, 1]))
b = list(reversed([3, 6, num, 1, 4]))
c = list(reversed([7, 3, num, 4]))
for i in range(8):
a[i] = a[i] * 19 ** i
for i in range(5):
b[i] = b[i] * 19 ** i
for i in range(4):
c[i] = c[i] * 19 ** i
if (sum(a) + sum(b)+ sum(c)) % 18 == 0:
maxi.append((sum(a) + sum(b)+ sum(c)) // 18)
print(max(maxi))
Приведём другое решение Крылова Матвея на языке Python.
for x in "0123456789abcdefghi":
if (int('98' + x + '79641', 19) + int('36' + x + '14', 19) + int('73' + x + '4', 19))%18==0:
print(x, (int('98' + x + '79641', 19) + int('36' + x + '14', 19) + int('73' + x + '4', 19))//18)
Типичные ошибки
- Выбрано наименьшее подходящее значение x вместо наибольшего: условие требует наибольшего, поэтому перебор нельзя прерывать на первом успехе.
- В ответ записана сама сумма, а не частное от деления на заданное число.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №14 по информатике