Дан целочисленный массив из 10 элементов. элементы массива могут принимать целые значения от 0 до 100 включительно. опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых не кратна 6, а произведение меньше 1000. под парой подразумевается два подряд идущих элемента массива.
begin
var a:=ArrRandom(10,0,100); a.Println;
Writeln('Количество пар равно ',
a.Pairwise.Where(x->((x.Item1+x.Item2) mod 6<>0)
and (x.Item1*x.Item2<1000)).Count)
end.
Пример работы программы
84 11 3 74 61 62 52 97 99 35
Количество пар равно 3
Пояснения.
ArrRandom создает нужный массив, Println выводит его на экран.
Расширение PairWise порождает последовательность из пар соседних элементов,
Where образует фильтр этих пар с необходимыми условиями, а Count подсчитывает количество пар фильтр.
int sum = 0; //Сумма двух, рядом стоящих элементов
int pro = 1; //Произведение двух, рядом стоящих элементов
int count = 0; //Инициализация переменной, отвечающей за количество пар
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; //Объявляем массив из 10 элементов
for (int i = 0; i < 9; i++) //Цикл от 0 до 9
{
sum = sum + array[i] + array[i + 1]; //Сумма = 0 + текущий элемент + следующий элемент
pro = pro * array[i] * array[i + 1]; //Произведение = 1 * текущий элемент * следующий элемент
Console.WriteLine("Сумма пары " + array[i] + " и " + array[i + 1] + " = " + sum + ", а произведение = " + pro); //Вывод
if ((sum % 6 == 1) && (pro < 1000)) //Проверяем условие: если сумма делится на 6 с остатком и произведение меньше 1000, тогда
{
count++; //Количество пар + 1
}
sum = 0; //Сумма = 0, чтобы не учитывалось ее предыдущее значение
pro = 1; //Произведение = 1, чтобы не учитывалось его предыдущее значение
}
Console.WriteLine();
Console.WriteLine("Количество пар = " + count); //Вывод количества пар
Console.ReadKey();