Задание 14. Информатика. ЕГЭ. Поляков-3570

Просмотры: 99
Изменено: 25 ноября 2024

(Е.А. Мирончик) Некоторое число \(X\) из десятичной системы счисления перевели в системы счисления с основаниями \(16\), \(8\), \(4\) и \(2\). Часть символов при записи утеряна. Позиции утерянных символов обозначены символом \(*\): $$ X = E*_{16} = *5*_8 = ***1_4 = *****1**_2 .$$ Определите число \(X\).

Решение:

Python


def conv4(n):
    ans = ''
    while n:
        ans = str(n % 4) + ans
        n //= 4
    return ans

alph = '123456789ABCDEF'

for a in alph:
    n16 = f'E{a}'
    n = int(n16, 16)
    n8 = oct(n)[2:]
    n2 = bin(n)[2:]
    n4 = conv4(n)
    if len(n8) == 3 and n8[1] == '5' and len(n4) == 4 and n4[-1] == '1' and len(n2) == 8 and n2[-3] == '1':
        print(n)

Ответ: \(237\)