Арифметические выражения и системы счисления
Задание 14 · Билет 2 · ЕГЭ по информатике
Условие
Операнды арифметического выражения записаны в системе счисления с основанием 29:
В записи чисел переменной x обозначена неизвестная цифра из алфавита 29-ричной системы счисления. Определите наибольшее значение x, при котором значение выражения кратно 28.
Попробуйте программой
Необязательно, но удобно: напишите здесь свой код на Python, который найдёт ответ. Если не получится — откройте решение и вставьте готовую программу одной кнопкой.
Решите программой на Python
в браузереНапишите свой код, который найдёт ответ, и нажмите «Выполнить». Горячая клавиша запуска: Ctrl/⌘ + Enter.
Наглядно: кликай по битам и смотри, как десятичное число превращается в двоичное и обратно.
Решение
Решение
открыто шагов: 4 из 4Программа, которая находит ответ:
def value(s, x, base): # переводим запись с цифрой x в десятичное
v = 0 # накапливаем значение
for ch in s: # идём по цифрам слева направо
d = x if ch == 'x' else int(ch) # 'x' заменяем на искомую цифру
v = v * base + d # сдвигаем и добавляем цифру
return v
for x in range(28, -1, -1): # перебираем x сверху вниз (нужен максимум)
total = value('923x874', x, 29) + value('524x6152', x, 29) # значение выражения
if total % 28 == 0: # делится на 28?
print(total // 28) # выводим частное
break # максимум найден — стоп частное = 3319197720. Совпадает с эталоном демоверсии.
Теория и другие билеты
Разбор с нуля, типовые ошибки, частые вопросы и все билеты задания 14 — на странице задания.