Тема 14. Системы счисления

14.02 Поиск цифр(-ы) числа

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела системы счисления
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#79564

Какая максимальная сумма цифр может получиться в семиричной записи числа

1A1x89yJ22 − C5y91z119 + 43z29xA12

если вместо x, y и z может стоять ровно 1 цифра, x, y и z не могут быть одинаковыми.

Показать ответ и решение

Решение программой:

В условии даны три числа 1A1x89yJ22  , C5y91z119  и 43z29xA12  , содержащие переменные x, y и z, каждая из которых может принимать значения из соответствующего алфавита цифр своей системы счисления. Необходимо найти комбинацию x, y и z, при которой сумма цифр результата выражения 1A1x89yJ22 − C5y91z119 + 43z29xA12  в 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:. Если цифры различны, мы формируем числа 1A1x89yJ22  , C5y91z119  и 43z29xA12  в виде строк с подставленными значениями 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)

Ответ: 49

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!