Array116. Дан целочисленный массив $$A$$ размера $$N$$. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии — количество этих элементов (длина серии может быть равна $$1$$). Сформировать два новых целочисленных массива $$B$$ и $$C$$ одинакового размера, записав в массив $$B$$ длины всех серий исходного массива, а в массив $$C$$ — значения элементов, образующих эти серии.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
program Array116; var a,b,c : array [1..10] of real; N,i,k: integer; begin Write('N: '); Readln(N); Writeln('A: '); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; k:=1; b[k]:=1; c[k]:=a[k]; for i:=2 to N do begin if a[i-1]=a[i] then b[k]:=b[k]+1 else begin inc(k); b[k]:=1; c[k]:=a[i]; end; end; for i:=1 to k do writeln(c[i],' - ', b[i] ); end. |
Задачи из раздела Array можно посмотреть здесь.
Определение серии у них какое-то странное. Если серия – это группа элементов, то она априори (или определенно, интуитивно или еще какое-то другое подходящее слово) не может состоять из одного элемента. А значит и длина такой серии не может быть равна 1. То есть по идее минимальная длина серии должна быть равна 2.
А по мне так всё ок. 🙂 массив из 1 элемента или массив 0 длинны, или нулевая матрица, это же нормальные математические инструменты. Почему бы не быть серии из 1 элемента или даже 0 длинны 🙂