1.
Дан одномерный целочисленный массив А, состоящий из N элементов, N - заданное натуральное число. Элемент Ai (i=1,2,3…, N) назовем особыми, если он больше суммы остальных элементов. Составить одномерный массив В из особых элементов массива А, оканчивающихся на 5. Если таких элементов нет, то выдать соответствующее текстовое сообщение.
2.
Дан одномерный массив А, состоящий из N элементов, N - заданное натуральное число. Сколько значений элементов в массиве А встречается .более одного раза.
(Язык Паскаль)
===== PascalABC.NET =====
= 1 =
begin
var n := ReadInteger('N =');
var A := ArrRandom(n, -99, 99);
A.Println;
// собственно, решение
var s := A.Sum; // сумма всех элементов массива
var L := new List<integer>; // то, что войдет в массив В
// берем каждого претендента и сравниваем его с остальной суммой
for var i := 0 to A.High do
if (Abs(A[i] mod 10) = 5) and (A[i] > s - A[i]) then
L.Add(A[i]);
var B := L.ToArray;
if B.Length > 0 then
begin
Print('Особые элементы:');
B.Print
end
else
Print('Нет "особых" элементов');
end.
= 2 =
begin
var n := ReadInteger('N =');
var A := ArrRandom(n, -10, 10);
A.Println;
// собственно, решение
var D := new Dictionary<integer, integer>; // словарь
foreach var k in A do // перебор элементов
if D.ContainsKey(k) then
D[k] += 1 // +1, если такой элемент был
else
D.Add(k, 1); // 1, если элемент встретился впервые
D.Count(p -> p.Value > 1).Print
end.