Олимпиадный тренинг

Задача . Декодирование сообщения


Задача

Темы:

По каналу связи передаётся последовательность слов в латинском алфавите {А, Е, Р}. Длина каждого слова не превосходит 10 букв, слова могут не быть осмысленными словами русского языка. Каждое слово передается в виде целого числа, полученного следующим образом:
1)      Сначала слово кодируется с помощью неравномерного двоичного кода с кодовыми словами: Е – 0; Р – 10; А – 11;
2)      К полученной двоичной последовательности справа приписывается цифра 1;
3)      Полученная двоичная цепочка переворачивается, то есть, из цепочки 01010111 получается 11101010;
4)      Искомое число N вычисляется в результате перевода двоичной цепочки, полученной на предыдущем шаге, в десятичную систему.
 

Например, символьная последовательность ААЕЕР будет преобразована в 11110010, затем (добавляем единицу в конец) в 111100101, а потом в число: 1 + 2 + 4 + 8 + 64 + 256 = 335. Отметим, что 335 = 1010011112.
Напишите программу, которая, получив на вход натуральное число, декодирует переданное сообщение и определяет, сколько раз в исходном слове встречаются гласные буквы. Считается, что входное число может быть представлено в виде значения целого типа в используемом языке программирования.

Пример входных данных
5483

Пример выходных данных
АЕРАЕРР
4

Примечание. В этом примере: исходное слово: АЕРАЕРР. Кодовая двоичная последовательность: 110101101010, после добавления 1 справа получим: 1101011010101.

time 1000 ms
memory 32 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w6433
Free Pascal1
Python23
Комментарий учителя