Предмет: Информатика, автор: lolasik58

Ваша задача — разработать новую систему шифрования данных. Встречая очередное число
X
для дешифровки, определите, к какой системе счисления оно могло бы относиться (выбирайте системы счисления с основанием меньше 6
6
). Затем рассчитайте возможные десятичные значения числа
X
и сложите их.

Например: =123
X
=
123
. Число 123
123
может относиться к четверичной или к пятеричной системам счисления.
В четверичной системе число 123
123
— это 27
27
.
В пятеричной системе число 123
123
— это 38
38
.
Значит, 123
123
— это 27+38=65
27
+
38
=
65

Расшифруйте: =2021
X
=
2021
.

Ответы

Автор ответа: nikdissv
2

X = input()

min_notation = int(max(X))+1

x_value = 0

for n in range(min_notation, 6):

   x_value += int(X, n)

print(x_value)

# оформлю это как функцию, принимаемую число (ведь скорее всего вам понадобится выполнить этот алгоритм не один раз и не для одного числа...), запишу в одну строку

def decode(x: int) -> int:

   return sum(int(x, n) for n in range(int(max(str(X)))-1, 6))

# лучший ответ пожалуйста. Отвечу на любые вопросы, если не понятно


daryapak08: Какой ответ в итоге?
nikdissv: 459
nikdissv: там опечатка в конце, где range(int(max(x))-1, 6) должен быть +: range(int(max(x))+1, 6)
Похожие вопросы