14.02 Поиск цифр(-ы) числа
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 12.
В записи чисел переменной обозначена неизвестная цифра из алфавита 12-ричной системы счисления.
Определите наименьшее значение
, при котором значение данного арифметического выражения в
десятичной системе счисления кратно 11. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 11 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Решение программой:
В условии даны два числа в 12-ричной системе счисления: и
, где x — это неизвестная цифра,
которую мы должны подобрать. Алфавит 12-ричной системы состоит из символов от 0 до 9 и букв a, b, где a
обозначает 10, а b — 11. Так как x может быть любой цифрой из этого алфавита, мы создаём строку ’0123456789ab’ и с
помощью цикла for x in a: перебираем все её символы. Для каждого значения x мы формируем строковое представление
первого числа: ’a9’ + x + ’64’. Здесь мы используем операцию конкатенации строк (+), чтобы вставить текущий символ
x между частями числа. Получившаяся строка, например, ’a9064’ при x = ’0’, затем преобразуется в целое число из
12-ричной системы с помощью функции int(..., 12). Аналогично строим второе число ’1’ + x + ’00a’, где снова
конкатенируем части числа и преобразуем в десятичную систему через int(..., 12). После этого складываем
оба результата, получая сумму в переменной (s1 + s2). Далее проверяем, делится ли эта сумма на 11,
используя условие if (s1 + s2) % 11 == 0, где оператор % вычисляет остаток от деления на 11. Если условие
выполняется, то мы выводим частное от деления (s1 + s2) // 11 с помощью функции print(). Так как в
условии требуется наименьшее значение x, удовлетворяющее условию, первый найденный вариант сразу
даст правильный результат, так как мы перебираем x в порядке возрастания по алфавиту 12-ричной
системы.
# Задаём алфавит 12-ричной системы счисления: от 0 до 9, затем a=10, b=11 a = ’0123456789ab’ # Перебираем все возможные значения x из алфавита for x in a: # Формируем первое число $A9x64_{12}$ как строку и переводим в десятичную систему s1 = int(’a9’ + x + ’64’, 12) # Формируем второе число $1x00A_{12}$ как строку и переводим в десятичную систему s2 = int(’1’ + x + ’00a’, 12) # Проверяем, делится ли сумма чисел на 11 if (s1 + s2) % 11 == 0: # Если делится, выводим частное от деления суммы на 11 print((s1 + s2) // 11)
Специальные программы

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

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

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

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

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

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