Условие: № 7346 (Уровень: Средний)
(Д. Статный) Дано арифметическое выражение:
В записи чисел переменной x обозначена неизвестная цифра из допустимого алфавита для указанных систем счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 35. Для найденного значения x вычислите частное от деления значения арифметического выражения на 35 и укажите его в ответе в десятичной системе счисления.
def my_int(M: list, n: int):
r = 0
M.reverse()
for i in range(0, len(M)):
r += M[i] * n ** i
return r
for x in range(0, 67):
A = my_int([3, x, 2, 1], 81)
B = my_int([1, 7, x, 4], 67)
if (A + B) % 35 == 0:
print((A + B) // 35)
Комментарии к коду программы:
- def my_int(M: list, n: int): - Объявляем функцию my_int, которая принимает два аргумента: число для перевода в виде списока M и систему счисления из которой будем переводить в виде переменной n.
- r = 0 - Создаем переменную r со значением 0, куда будем записывать итоговый результат перевода.
- M.reverse() - Используем метод reverse() для переворачивания списка M, таким образом порядковые номера выстроятся по направлению индексов цикла for.
- for i in range(0, len(M)): - Используем цикл for, чтобы перебрать все элементы списка M по индексам.
- r += M[i] * n ** i - Для каждого элемента списка M вычисляем значение по формуле и добавляем его к переменной r (итоговую сумму).
- return r - Возвращаем значение переменной r, то есть результат перевода.
- for x in range(0, 67): - Используем цикл for, чтобы перебрать все значения от 0 до 66 для переменной x (всегда выбираем нижнюю систему счисления, так как большие числа не могут находиться в меньшей системе счисления).
- A = my_int([3, x, 2, 1], 81) - Вызываем функцию my_int с аргументами [3, x, 2, 1] и 81 и сохраняем результат в переменной A.
- B = my_int([1, 7, x, 4], 67) - Вызываем функцию my_int с аргументами [1, 7, x, 4] и 67 и сохраняем результат в переменной B.
- if (A + B) % 35 == 0: - Проверяем, является ли значение арифметического выражения A + B кратным 35.
- print((A + B) // 35) - Если сумма A + B кратна 35, выводим ее целочисленное - частное от деления на 35.