Задача 6. Занимательная упаковка ( ). Есть некий алгоритм данных, который позволяет упаковывать строки, содержащие повторяющиеся символы, в более короткие последовательности. Также, имеется и обратный алгоритм по распаковке, который «зеркален» упаковке. Работает он так: в случае, когда в последовательности символов встречается более 3 одинаковых символов, идущих друг за другом, алгоритм заменяет обнаруженный фрагмент следующим кодом первым символом указывается «1», далее целым числом указывается количество одинаковых символов и указывается сам символ. Например, строка «» заменяется на 16A (1 — сжимается, 6 количество символов, А сам символов). В случае, когда символы в строке оказываются различными, либо повторяются менее 4-х раз, алгоритм ставит перед такой последовательностью «0» и указывает число символов, подлежащих сжатию. Например, строка «БГВВВГААВР» кодируется следующим образом: не «010БГВВВГААВР» Допустим, имеется строка: «» В упакованном виде она выглядит так: «15A17509ВГБАББГГГ16С» Напишите в ответе последовательность символов (без кавычек), которая получается после выполнения трёх действий следующего алгоритма: 1) Распаковать строку «17A04ЕАЮИ14Б15Ц». 2) Заменить каждую гласную букву на букву «Б».
Объяснение:
Язык не был указан, так что пишу на С++:
1)
#include <iostream>
using namespace std;
int main()
{
int buf, quantity = 0;
cin >> buf;
int sum = 0;
while (buf != 0) {
++quantity;
sum += buf;
cin >> buf;
}
cout << "Sum: " << sum << "\nAverage: " << sum / quantity;
}
2)
#include <iostream>
using namespace std;
int main()
{
int buf;
cin >> buf;
int max_num = buf;
while (buf != 0) {
if (max_num < buf) {
max_num = buf;
}
cin >> buf;
}
cout << "Max: " << max_num;
}
Program SumAndMul;
Uses Crt;
var a:array[1..10] of real;
i:integer;
sum,mul:longint;
begin
clrscr;
for i:=1 to 10 do
begin
write('Введите -', i,' число:' );
readln(a[i]);
end;
sum:=0;mul:=1;
for i:=1 to 10 do
begin
if (a[i]>0) then sum:=sum+a[i];
if (a[i]<0 ) then mul:=mul*a[i];
end;
writeln('Сумма положительных элементов: ',sum);
writeln('Произведение отрицательных элементов: ',mul);
readkey;
end.