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

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

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

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

Задача 1#54402

Операнды арифметического выражения записаны в системе счисления с основанием 11.

348x511 + 1x11111

В записи чисел переменной x  обозначена неизвестная цифра из алфавита 11-ричной системы счисления. Определите наименьшее значение x  , при котором значение данного арифметического выражения кратно 8. Для найденного значения x  вычислите частное от деления значения арифметического выражения на 8 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

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

Даны два числа в 11-ричной системе счисления: 348x511  и 1x11111  , в которых переменная x обозначает неизвестную цифру из алфавита этой системы. Алфавит 11-ричной системы включает цифры от 0 до 9 и букву A, обозначающую число 10 в десятичной системе. Наша задача — найти наименьшее значение x, при котором сумма этих чисел в десятичной системе делится на 8, а затем вычислить частное от деления этой суммы на 8. Для этого мы перебираем все возможные значения x, проходя по строке ’0123456789A’ с помощью цикла for x in ’0123456789A’:, где каждая итерация возвращает символ, который может представлять цифру в 11-ричной системе. На каждой итерации мы формируем строковое представление первого числа ’348’ + str(x) + ’5’ и второго числа ’1’ + str(x) + ’111’. Затем с помощью функции int(строка, 11) каждое из этих представлений переводится в десятичное число: второй аргумент функции указывает, что исходное значение записано в системе счисления с основанием 11. После перевода мы складываем оба результата и сохраняем сумму в переменной s. Далее проверяем, делится ли эта сумма на 8, используя условие if s % 8 == 0, где % возвращает остаток от деления на 8. Если остаток равен нулю, значит, сумма делится на 8, и мы выводим частное от деления суммы на 8 через print(s // 8). Поскольку требуется наименьшее значение x, после вывода результата используем команду break, чтобы остановить выполнение цикла и не проверять остальные значения x.

# Перебираем все возможные значения x из алфавита 11-ричной системы счисления (0–9 и A для числа 10)
for x in ’0123456789A’:
    # Переводим первое число $348x5_{11}$ в десятичную систему
    # Формируем строку, подставляя текущее значение x, и используем основание 11
    # Аналогично переводим второе число $1x111_{11}$ в десятичную систему
    # Складываем оба результата и сохраняем в переменную s
    s = int(’348’ + str(x) + ’5’, 11) + int(’1’ + str(x) + ’111’, 11)
    # Проверяем, делится ли сумма на 8 (остаток от деления на 8 равен нулю)
    if s % 8 == 0:
        # Если делится, выводим частное от деления суммы на 8
        print(s // 8)
        # Прерываем цикл, так как найдено наименьшее подходящее значение x
        break

Ответ: 8292

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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