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

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

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

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

Задача 1#72434

При каком х сумма цифр в 17-ричной записи числа

17200 − 365x213

будет максимальной (вместо x может стоять ровно одна цифра)?

В качестве ответа укажите максимальную сумму цифр получившегося числа

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

В условии нам дано выражение 17200 − 365x213  , в котором x — это одна неизвестная цифра из 13-ричной системы. Наша задача — определить, какое значение x даст максимальную сумму цифр результата при переводе числа в 17-ричную систему, и найти эту максимальную сумму. Для решения мы заводим переменную max_sum = 0, которая будет хранить наибольшую найденную сумму цифр. Затем перебираем все возможные значения x из 13-ричной системы, используя цикл for x in "0123456789ABC". Внутри цикла мы сначала формируем число 365x213  , подставляя текущее значение x, и с помощью функции int(строка, 13) переводим его в десятичное число. Далее вычисляем значение всего выражения в десятичной системе как s = 17 ** 200 - int(...). После этого нужно найти сумму цифр полученного числа в 17-ричной системе. Для этого заводим переменную sum_digits = 0 и используем цикл while s > 0, в котором на каждом шаге добавляем к sum_digits остаток от деления числа на 17 – s % 17 (это последняя цифра числа в 17-ричной системе), а затем убираем последнюю цифру делением s //= 17. После подсчета суммы цифр для конкретного x сравниваем её с текущим max_sum и обновляем max_sum с помощью функции max(max_sum, sum_digits). После перебора всех возможных значений x в переменной max_sum окажется максимальная сумма цифр для числа 17200 − 365x2
            13  в 17-ричной системе, которую мы выводим через print(max_sum).

# Переменная для хранения максимальной суммы цифр
max_sum = 0  # Начальное значение суммы

# Перебираем все возможные значения x в 13-ричной системе
for x in "0123456789ABC":
    # Вычисляем значение выражения 17**200 - 365x2 в десятичной системе
    s = 17 ** 200 - int("365" + x + "2", 13)

    # Переменная для накопления суммы цифр числа в 17-ричной системе
    sum_digits = 0
    # Считаем сумму цифр числа в 17-ричной системе
    while s > 0:
        sum_digits += s % 17  # Добавляем последнюю цифру числа к сумме
        s //= 17  # Убираем последнюю цифру числа

    # Обновляем максимальную сумму цифр, если текущая больше
    max_sum = max(max_sum, sum_digits)

# Выводим максимальную сумму цифр
print(max_sum)

Ответ: 3188

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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