Работы учащихся Решение сложных задач по программированию | Page 7
© Иванов Дмитрий, МБОУ «Лицей № 2», г. Нижневартовск
Задача № 6
На вход программе подается последовательность цифр, заканчивающаяся точкой (другие символы,
кроме цифр и точки, отсутствуют). Требуется написать программу, которая выводит цифры,
встречающиеся во входной последовательности, в порядке увеличения частоты их встречаемости.
Если какие-то цифры встречаются одинаковое число раз, они выводятся в порядке возрастания.
Например, если исходная последовательность была такая:
123124456.
то результат должен быть следующий:
356124
Решение:
program chastota;
var a:array[0..9] of integer;
s:string;
i,x,er:integer;
begin
readln(s);
for i:=0 to 9 do a[i]:=0;
i:=1;
while s[i]<>'.' do begin
Val(s[i],x,er);
a[x]:=a[x]+1;
i:=i+1;
end;
i:=0; er:=1;
while i<>1 do begin
i:=1;
for x:=0 to 9 do
if a[x]=er then begin
write(x);
a[x]:=a[x]-er;
end;
for x:=0 to 9 do
if a[x]>0 then i:=i+1;
er:=er+1;
end;
writeln(' ');
end.
май, 2015 г.