Задание 14 ЕГЭ по информатике: решайте с автопроверкой
Задание 14 о позиционных системах счисления. Значение выражения со степенями записывают в системе с заданным основанием и считают нужные цифры. Другой вариант: найти неизвестную цифру или основание, при котором верно равенство.
Решать задачи номераКак решать программой
Python работает с целыми числами любой длины, поэтому выражение вроде 9⁵ + 3³ − 10 считается точно. Цифры в системе с основанием b получаются циклом: остаток v % b — это очередная цифра справа, затем v //= b.
Если неизвестна цифра x, переберите все цифры, допустимые в этой системе, и для каждой вычислите число через int(строка, основание) или вручную. Если неизвестно основание, перебирайте его начиная с наибольшей цифры записи плюс один.
Не переводите большие числа в строку через float: потеряется точность. Работайте только с целыми.
Проверяйте программу на маленьких значениях параметров, которые легко посчитать в уме. Например, при a = 2 и b = 1 выражение равно 81 + 3 − 10 = 74, в троичной системе 2202, три двойки.
Разбор примера
Значение 9⁵ + 3³ − 10 записали в троичной системе. Сколько в записи двоек?
v = 9**5 + 3**3 - 10
count = 0
while v > 0:
count += v % 3 == 2
v //= 3
print(count)Программа печатает
2
Значение выражения равно 59066, в троичной системе это 10000000122. В записи две двойки. Девятка в степени даёт единицу с нулями, а вычитание десяти меняет только младшие разряды, поэтому двойки появились справа.
Решить эту задачуЗадачи к заданию 14
- Двойки в троичной записиЛёгкаяРешать
- Сумма цифр произведения в системе bСредняяРешать
- Неизвестная цифра x и кратностьСредняяРешать
- Основание, в котором верно равенствоСредняяРешать
- Основания, где запись кончается на …ЛёгкаяРешать
- Две неизвестные цифры x и yСредняяРешать
- Наибольший x с заданным числом нулейСредняяРешать
- Сумма чисел из разных системЛёгкаяРешать
- Основания, где у числа k цифрСредняяРешать
- Числа с заданной суммой цифр в системе bЛёгкаяРешать
Бесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).
Вопросы и ответы
- Почему не перевести число через format?
- format знает только системы 2, 8, 10 и 16. Для троичной и других систем нужен цикл с делением.
- Как обозначать цифры больше 9?
- В условии это буквы A, B, C и так далее. В программе удобнее хранить цифры числами.
- Что делать, если в выражении неизвестная цифра?
- Перебрать все возможные цифры и проверить условие для каждой. Вариантов меньше основания системы.