Дан массив х: array[1..n] of integer, причем x[1]<=x[2]<=...<=x[n]. Найти количество...

0 голосов
54 просмотров

Дан массив х: array[1..n] of integer, причем x[1]<=x[2]<=...<=x[n]. Найти количество различных чисел среди элементов массива.


Информатика (44 баллов) | 54 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Const n=10; 
var a:array[1..n] of integer;
i,k:integer; 
begin
writeln('Исходный массив:');
a[1]:=random(10);
write(a[1],'  ');
for i:=2 to n do
 begin
 a[i]:=a[i-1]+random(10);
 write(a[i],'  ');
 end;
writeln;
k:=1;
for i:=2 to n do if a[i-1]<>a[i] then k:=k+1;
writeln('k = ',k);
end.

Пример:
Исходный массив:
9  18  19  19  28  32  38  41  41  47  
k = 8

(194k баллов)
0 голосов

//PascalABC.NET (версия 3.1, сборка 1198 от 11.03.2016)
begin
  var n:=ReadInteger('Размер массива: ');
  var a:=ArrRandom(n).Sorted.Println;
  println('Уникальных:',a.Distinct.count);
end.

Тестовое решение:

Размер массива:  20
1 8 23 25 25 44 51 54 63 64 65 69 70 73 77 77 81 84 91 96
Уникальных: 18






(13.9k баллов)