Предмет: Информатика,
автор: kosmosnikita
Составьте программу подсчета различных элементов двумерного массива A(N,M).
Ответы
Автор ответа:
0
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
var n:=ReadInteger('N=');
var m:=ReadInteger('M=');
var a:array of array of integer;
SetLength(a,N);
for var i:=0 to n-1 do begin
a[i]:=ArrRandom(m,10,99);
a[i].Println
end;
Println('Различных элементов',a.SelectMany(x->x).ToHashSet.Count)
end.
Тестовое решение:
N= 5
M= 8
92 37 63 60 17 38 79 64
13 52 90 29 90 84 41 39
59 94 48 89 79 25 30 75
14 51 14 30 33 78 42 45
59 84 76 57 43 78 71 90
Различных элементов 32
begin
var n:=ReadInteger('N=');
var m:=ReadInteger('M=');
var a:array of array of integer;
SetLength(a,N);
for var i:=0 to n-1 do begin
a[i]:=ArrRandom(m,10,99);
a[i].Println
end;
Println('Различных элементов',a.SelectMany(x->x).ToHashSet.Count)
end.
Тестовое решение:
N= 5
M= 8
92 37 63 60 17 38 79 64
13 52 90 29 90 84 41 39
59 94 48 89 79 25 30 75
14 51 14 30 33 78 42 45
59 84 76 57 43 78 71 90
Различных элементов 32
Автор ответа:
0
Объяснение. Метод SelectMany "разворачивает" двумерный массив А в последовательность элементов. Эта последовательность помещается в стандартный для .NET набор HashSet, который строится на базе хэш-таблицы, т.е. не допускает одинаковых значений. А далее метод Count возвращает количество элементов в этом наборе.
Автор ответа:
0
Можно, конечно, попытаться реализовать решение допотопными "школьными" методами, но это трудозатратно и не может быть оценено в 5 баллов.
Похожие вопросы
Предмет: Литература,
автор: annatramboveckaya
Предмет: Геометрия,
автор: lutiishipperaz09
Предмет: Алгебра,
автор: SateSateSateee
Предмет: Химия,
автор: nikita556675
Предмет: Математика,
автор: almazgalimzyan