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

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

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

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

Задача 1#58968

Дано арифметическое выражение:

9ACx3616 + 5CDxDA16

В записи чисел переменной x обозначена неизвестная цифра. При каком наименьшем значении переменной х, сумма цифр значения этого выражения, записанного в 7-ричной системе счисления, равна 34? В ответе для найденного значения x укажите значение выражения в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

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

В данной задаче нам даны два числа с неизвестной цифрой x в 16-ричной системе счисления: 9ACx3616  и 5CDxDA16  . Необходимо найти наименьшее значение x, при котором сумма цифр значения выражения, записанного в 7-ричной системе, равна 34, и затем вывести значение выражения в десятичной системе. Для решения мы используем полный перебор возможных значений x из алфавита 16-ричной системы ’0123456789abcdef’. Для каждого символа x мы формируем строки чисел: для первого числа соединяем ’9ac’, x и ’36’, для второго — ’5cd’, x и ’da’. Затем с помощью функции int с основанием 16 преобразуем эти строки в десятичные числа, чтобы можно было выполнить арифметические операции в Python. Далее суммируем эти два числа, получая s = s1 + s2. После этого с помощью функции n7 переводим полученную сумму в 7-ричную систему, формируя строку цифр, и применяем функцию summ, которая последовательно складывает все цифры числа, используя цикл while: пока n больше нуля, прибавляем остаток от деления на 10 к сумме и делим n на 10, чтобы перейти к следующей цифре. После вычисления суммы цифр проверяем условие if summ(int(n7(int(s)))) == 34. Если оно выполняется, выводим значение суммы в десятичной системе через print(s). Поскольку мы перебираем x начиная с наименьшего и выводим результат сразу при первом успешном условии, найденное значение x будет минимальным.

# Функция для подсчёта суммы цифр числа n в десятичной системе
def summ(n):
    s = 0
    # Пока число больше нуля
    while n > 0:
        # Прибавляем к сумме последнюю цифру числа
        s += n % 10
        # Убираем последнюю цифру из числа
        n //= 10
    return s

# Функция для перевода числа n в 7-ричную систему и возвращения в виде строки
def n7(n):
    a = ’’
    # Пока число больше нуля
    while n > 0:
        # Добавляем остаток от деления на 7 в начало строки
        a = str(n % 7) + a
        # Делим число на 7, чтобы перейти к следующей цифре
        n //= 7
    return a

# Строка с возможными цифрами 16-ричной системы
alf = ’0123456789abcdef’

# Перебираем все возможные значения x
for x in alf:
    # Формируем первое число $9ACx36_{16}$ в виде строки и переводим в десятичную систему
    s1 = int(’9ac’ + x + ’36’, 16)
    # Формируем второе число $5CDxDA_{16}$ в виде строки и переводим в десятичную систему
    s2 = int(’5cd’ + x + ’da’, 16)
    # Суммируем оба числа
    s = s1 + s2
    # Переводим сумму в 7-ричную систему и вычисляем сумму её цифр
    if summ(int(n7(int(s)))) == 34:
        # Если сумма цифр равна 34, выводим значение суммы в десятичной системе
        print(s)

Ответ: 16225552

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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