№ 14 (шаблон решения)

Условие

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

97968х1515​ + 7×23315

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

Решение

Чтобы решить такую задачу нужно перебрать все возможные значения x и перевести числа из пятнадцатеричной системы счисления в десятичную.

1. Перебираем цифру x

x – это цифра пятнадцатеричной системы счисления. Все цифры пятнадцатеричной системы счисления: {0, 1, 2, 3, 4, 5, 6,7, 8, 9, A, B, C, D, E}. А обозначает 10, B – 11, C – 12…

Записываем цифры в строку и в цикле по ней проходимся:

alf = '0123456789ABCDE' # Проверяем, что здесь 15 цифр, так как система счисления пятнадцатеричная!
for x in alf:

2. Переводим числа из пятнадцатеричной системы счисления в десятичную

Воспользуемся функцией int(). Она получает на вход строку и основание системы счисления из которой надо перевести число в десятичную систему счисления.

Рассмотрим первое число 97968х1515, в Python получаем его как '97968' + x + '15' – это строка. Как раз строка нам и нужна, можем передать её в функцию int(). Также в функцию надо передать число 15 – основание системы счисления из которой int() будет переводить наше число в десятичную систему счисления.

a = int('97968' + x + '15', 15) # В переменной а получили десятичное число!

Получили в переменной a обычное десятичное число.

Аналогично делаем со вторым числом 7×23315:

b = int('7' + x + '233', 15)

Мы уже написали программу, которая перебирает все возможные значения x и переводит числа в десятичную систему счисления.

alf = '0123456789ABCDE' # Проверяем, что здесь 15 цифр, так как система счисления пятнадцатеричная!
for x in alf:
    a = int('97968' + x + '15', 15)
    b = int('7' + x + '233', 15)

3. Отбираем нужные значения x 

Нам нужно найти те x, при которых сумма чисел делится на 14. Сделать это не сложно:

alf = '0123456789ABCDE' # Проверяем, что здесь 15 цифр, так как система счисления пятнадцатеричная!
for x in alf:
    a = int('97968' + x + '15', 15)
    b = int('7' + x + '233', 15)
    if (a + b) % 14 == 0:
        print((a+b) // 14)

Для подходящих x выводим на экран результат деления суммы чисел на 14. Это от нас просят дать в ответ.

Запускаем программу:

116071912
116073712

Она вывела два числа. В ответ берём первое, так как по условию нужно найти наименьшее значение x, при котором… Обрати внимание, что в ответ от нас просят не x, а результат деления суммы чисел на 14.

Ответ: 116071912.

Обновлено: Февраль 2, 2024 — 11:12 дп

Добавить комментарий