?>
Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется количество гласных в исходной цепочке символов; если их четное число (либо гласных нет), то удаляется последний символ цепочки. Если нечетное – то в конец дописывается буква С. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите ( А – на Б, Б – на В, Я – на А Получившаяся цепочка является результатом работы алгоритма. Например, если исходной цепочкой символов была цепочка КОТ, то результатом работы алгоритма будет цепочка ЛПУТ, а если исходной цепочкой символов была цепочка РЕКА, то результатом работы алгоритма будет цепочка СЁЛ. Дана цепочка символов КГУ. Какая цепочка символов получится, если к данной цепочке применить алгоритм дважды (то есть к данной цепочке применить алгоритм, а затем к результату его работы еще раз применить алгоритм)? Русский алфавит:
Ответы
===== PascalABC.NET =====
-№1-
begin
var (Яблок, Апельсинов, Бананов) :=
ReadInteger3('Число яблок, апельсинов и бананов:');
var ВесЯблок := 100 * Яблок;
var ВесАпельсинов := 150 * Апельсинов;
var ВесБананов := 170 * Бананов;
if ВесЯблок > ВесАпельсинов then
if ВесЯблок > ВесБананов then
Print('Берем яблоки')
else
Print('Берем бананы')
else if ВесАпельсинов > ВесБананов then
Print('Берем апельсины')
else
Print('Берем бананы')
end.
-№2-
begin
var n := ReadInteger('Введите натуральное число;');
var P := new HashSet<integer>; // это множество целых
while n > 0 do
begin
P += n mod 10; // очередную цифру добавляем ко множеству
n := n div 10
end;
P.Count.Println // в множестве все элементы уникальны
end.