14.02 Поиск цифр(-ы) числа
Ошибка.
Попробуйте повторить позже
Дано арифметическое выражение . Определите, сколько различных значений может принимать
выражение при всех возможных x и y.
(Примечание: основание системы счисления понимается как переведенное в десятичную систему счисления
число)
Решение программой:
В условии даны два числа и
, где x и y — это цифры, которые могут принимать значения в
пределах допустимых символов для 15-ричной системы и для системы с основанием, равным значению x. Сначала
мы определяем алфавит для 16-ричной системы ’0123456789ABCDEF’ и создаём пустое множество c,
чтобы сохранять все уникальные значения суммы. Далее используем вложенные циклы: внешний цикл
перебирает x от 10 до 14 включительно (поскольку x рассматривается как основание системы счисления
для второго числа и должно быть больше y), а внутренний цикл перебирает y от 0 до x-1. Для каждого
сочетания x и y формируем первое число
в виде строки ’23’ + alf[x] + alf[y] + ’B’ и переводим его в
десятичное число с помощью int(строка, 15). Второе число
формируем как ’36’ + alf[y] + ’90’ и
переводим его в десятичное число с помощью int(строка, x), используя значение x как основание. Затем
суммируем два числа и добавляем результат в множество c. После перебора всех возможных пар (x, y)
количество различных значений выражения определяется как длина множества c и выводится с помощью
print(len(c)). Таким образом, мы получаем число уникальных значений суммы для всех допустимых x и
y.
# Определяем алфавит 16-ричной системы счисления alf = ’0123456789ABCDEF’ # Создаем пустое множество для хранения уникальных значений выражения c = set() # Перебираем все возможные значения x от 10 до 14 включительно for x in range(10, 15): # Для каждого x перебираем все значения y меньше x for y in range(x): # Формируем первое число $23xyB_{15}$ и переводим в десятичное число s1 = int(f’23{alf[x]}{alf[y]}B’, 15) # Формируем второе число $36y90x_{x}$ и переводим в десятичное число с основанием x s2 = int(f’36{alf[y]}90’, x) # Суммируем числа и добавляем в множество уникальных значений c.add(s1 + s2) # Выводим количество различных значений арифметического выражения print(len(c))
Специальные программы

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

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

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

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

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

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