Декодирование номера в текст - PullRequest
2 голосов
/ 14 декабря 2010

Может кто-нибудь помочь мне придумать алгоритм или способ декодирования числа в 3 символа, когда они кодируются следующим образом:

Каждый элемент представляет собой 3 буквенных символа, как в следующих примерах:

СОБАКА -> (3 * 26 ^ 2) + (14 * 26) + 6 = 2398

CAT -> (2 * 26 ^ 2) + (0 * 26) + 19 = 1371

ZZZ -> (25 * 26 ^ 2) + (25 * 26) + 25 = 17575

Скажем, у меня есть 7446 или 3290, как бы я мог преобразовать их в текст?

Ответы [ 2 ]

3 голосов
/ 14 декабря 2010

Попробуйте извлечь буквы в обратном порядке:

7446             % 26 = 10
(7446 / 26)      % 26 = 0
(7446 / 26 / 26) % 26 = 11

Например:

1371             % 26 = 19 (T)
(1371 / 26)      % 26 = 0  (A)
(1371 / 26 / 26) % 26 = 2  (C)

CAT

% относится к операции по модулю . x % y дает вам остаток от деления x / y.

0 голосов
/ 14 декабря 2010

по модулю

input = 2398
iteration = 1
while input > 0
    character = input % 26
    input = input - character
    input = input / 26
    print character
...