РЕШЕНИЕ 14 НОМЕРОВ (4/4)
Условие задачи
Операнды арифметического выражения записаны в системе счисления с основанием 29:
463x7921₂₉ + 8241x153₂₉
В записи чисел переменной x обозначена неизвестная цифра из алфавита 29-ричной СС. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 28. Для найденного x вычислите частное от деления значения арифметического выражения на 28 и укажите его в ответе в десятичной системе счисления..
Решение через printable + int()
Функция int(строка, основание) переводит число из любой СС (до 36) в десятичную. Для подстановки x используем f-строки: int(f'463{x}7921', 29).
Строка printable из модуля string начинается с '0123456789abcdef...'. Срез printable[:29] — все допустимые цифры 29-ричной СС (от '0' до 's').
1 2 3 4 5 6 7
Решение через ручной перевод
Функция int() работает только до основания 36. Для оснований > 36 нужен ручной перевод по формуле:
xyzb = x · b² + y · b¹ + z · b⁰ (более подробно рассматривали в предыдущих статьях)
Здесь x — уже не символ, а число (от 0 до основание–1). Поэтому перебираем for x in range(29) и вручную вычисляем значение каждого числа по позициям.
1 2 3 4 5 6
Когда какой способ
Основание ≤ 36: используем printable + int() — короче и проще.
Основание > 36: только ручной перевод. int() не сработает, нужно расписывать формулу по позициям.
Наименьший vs наибольший: если нужен наименьший x — ставим break сразу после первого найденного. Если наибольший — не ставим break, последний выведенный и будет ответом.
Ответ: x = 0, частное = 7567913105
Решите задачи, чтобы усвоить материал
Решить в Личном КабинетеОперанды арифметического выражения записаны в системе счисления с основанием 15.
\(99658x29_{15} + 102x023_{15}\)
В записи чисел переменной x обозначена неизвестная цифра из алфавита 15-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 14. Для найденного значения x вычислите частное от деления значения арифметического выражения на 14 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Операнды арифметического выражения записаны в системе счисления с основанием 22.
\(98x79641_{22} + 36x14_{22}+ 73x4_{22}\)
В записи чисел переменной x обозначена неизвестная цифра из алфавита 22-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 21. Для найденного x вычислите частное от деления значения арифметического выражения на 21 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
