14.02 Поиск цифр(-ы) числа
Ошибка.
Попробуйте повторить позже
Какая максимальная сумма цифр может получиться в семиричной записи числа
если вместо x, y и z может стоять ровно 1 цифра, x, y и z не могут быть одинаковыми.
Решение программой:
В условии даны три числа ,
и
, содержащие переменные x, y и z, каждая из
которых может принимать значения из соответствующего алфавита цифр своей системы счисления. Необходимо найти
комбинацию x, y и z, при которой сумма цифр результата выражения
в 7-ричной
системе максимально возможна, при этом все три переменные должны быть различны. Для начала мы создаём строку
digits = ’0123456789ABCDEFGHIJKL’, включающую все допустимые символы для систем счисления с
основаниями 12, 19 и 22, чтобы иметь возможность перебрать все варианты. Далее создаём переменную
max_sum = 0 для хранения текущей максимальной суммы цифр. Перебор возможных значений x, y и z
осуществляется через три вложенных цикла for x in digits[:12]:, for y in digits[:19]: и for z in digits[:12]:, так как
минимальные основания систем, содержащих эти переменные, равны 12 и 19 соответственно. Внутри этих циклов
мы проверяем уникальность выбранных цифр условием if len(x, y, z) == 3:. Если цифры различны, мы
формируем числа
,
и
в виде строк с подставленными значениями x, y и
z и преобразуем их в десятичные числа с помощью функции int(..., base). Далее вычисляем значение
выражения s = s1 - s2 + s3. Для получения суммы цифр в 7-ричной системе мы используем цикл while
s > 0:, в котором последовательно прибавляем к переменной sum_digits остаток от деления s на 7, а
затем делим s на 7 целочисленно. После вычисления суммы цифр обновляем максимальную сумму с
помощью max_sum = max(max_sum, sum_digits). После перебора всех возможных комбинаций x, y и z
выводим результат print(max_sum), который и является искомой максимальной суммой цифр в 7-ричной
записи.
# Все допустимые цифры для систем счисления 12, 19 и 22 digits = "0123456789ABCDEFGHIJKL" # Переменная для хранения максимальной суммы цифр max_sum = 0 # Перебор возможных значений x от 0 до B (так как минимальная система с x — 12) for x in digits[:12]: # Перебор возможных значений y от 0 до J (так как минимальная система с y — 19) for y in digits[:19]: # Перебор возможных значений z от 0 до B (так как минимальная система с z — 12) for z in digits[:12]: # Проверяем, что x, y и z различны if len({x, y, z}) == 3: # Преобразуем числа $1A1x89yJ_{22}$, $C5y91z1_{19}$ и $43z29xA_{12}$ в десятичную систему s1 = int(f"1A1{x}89{y}J", 22) s2 = int(f"C5{y}91{z}1", 19) s3 = int(f"43{z}29{x}A", 12) # Вычисляем значение выражения s = s1 - s2 + s3 # Вычисляем сумму цифр числа в 7-ричной системе sum_digits = 0 while s > 0: sum_digits += s % 7 # Прибавляем последнюю цифру числа в 7-ричной системе s //= 7 # Убираем последнюю цифру # Обновляем максимальную сумму цифр, если текущее значение больше max_sum = max(max_sum, sum_digits) # Выводим максимальную сумму цифр print(max_sum)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!