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

Ответы

Ответ дал: petyaGavrikov
2
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
Ответ дал: vladmor
1
//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






Вас заинтересует