25 ! "сообщение" по теме динамика на языке python
в сообщении, состоящем из одних букв и пробелов, каждую букву заменили её порядковым номером в алфавите (а - 1, б - 2, я - 33), а пробел - нулем. требуется по заданной последовательности цифр найти количество исходных сообщений, из которых она могла получиться.
входные данные
в первой строке содержится последовательность цифр. цифр не более 100.
выходные данные
вывести одно число.
примеры
входные данные
80946
выходные данные
1
входные данные
21705
выходные данные
3
Эту колдунью зовут Кодировка КОИ-8. Таблица кодирования:
А-Ю, Б-А, В-Б, Г-Ц, Д-Д, Е-Е, Ж-Ф, З-Г, И-Х, Й-И, К-Й, Л-К, М-Л,
Н-М, О-Н, П-О, Р-П, С-Я, Т-Р, У-С, Ф-Т, Х-У, Ц-Ж, Ч-В, Ш-Ь,
Щ-Ы, Ъ-З, Ы-Ш, Ь-Э, Э-Щ, Ю-Ч, Я-Ъ, Ё-╦
Таблица построена так. Слева стоят буквы по русскому алфавиту, а справа русские буквы, соответствующие английскому алфавиту.
@ - Ю (код 40), A - А (41), B - Б, C - Ц, D - Д, E - E, F - Ф, и т.д.
Буква Ё - 33-ья в алфавите, она выбивается из ряда в 32 буквы, поэтому превращается не в букву, а в элемент псевдографики.
И еще меняется регистр, 1-ая буква маленькая, остальные большие.
Эти имена по порядку:
Глеб, Степан, Иван, Фёдор, Кирилл, Леонид
pascal
Объяснение:
var
a, b, c: real;
rel: boolean;
begin
Write('Введите стороны треугольника через пробел: ');
ReadLn(a, b, c);
if (a + b > c) and (a + c > b) and (b + c > a)
and (a > 0) and (b > 0) and (c > 0) then
begin
WriteLn('Треугольник с указанными сторонами существует.');
if (a + b + c) / 3 = a then
begin
WriteLn('Треугольник является равносторонним.');
rel := true;
end
else if ((a + b) / 2 = a) or ((b + c) / 2 = b) or ((a + c) / 2 = a) then
begin
WriteLn('Треугольник является равнобедренным.');
rel := true;
end;
if (a*a + b*b = c*c) or (a*a + c*c = b*b) or (b*b + c*c = a*a) then
begin
WriteLn('Треугольник является прямоугольным.');
rel := true;
end;
if not(rel) then WriteLn('Треугольник является произвольным.');
end
else
WriteLn('Треугольник с указанными сторонами не существует.');
end.