Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от -25 до 35. Составьте про- грамму, позволяющую найти и вывести произведение элементов массива, которые имеют нечётное значение и делятся на 3
Назовём инверсией пару элементов массива, в котором элемент с меньшим номером больше элемента с большим номером. Заметим, что после каждого обмена число инверсий в массиве уменьшается на 1. Тогда, посчитав число инверсий до работы программы и после, и вычтя из первого второе, мы получим число операций обмена.
Массив небольшой, и можно подсчитывать инверсии как угодно.
Var a,b,c,x:real; begin repeat writeln('Введите тип арифм. операции (1 - сложение, 2 - вычитание, 3 - умножение, 4 - деление, 0 - остановить программу'); readln(x); if x=1 then begin writeln('Введите 2 числа'); readln(a,b); c:=a+b; writeln('ответ: ',c); end; if x=2 then begin writeln('Введите 2 числа'); readln(a,b); c:=a-b; writeln('ответ: ',c); end; if x=3 then begin writeln('Введите 2 числа'); readln(a,b); c:=a*b; writeln('ответ: ',c); end; if x=4 then begin writeln('Введите 2 числа'); readln(a,b); c:=a/b; writeln('ответ: ',c); end; if x=0 then writeln('Пока!'); until x=0; end.
import random
a = []
b = []
c = 1
for i in range(30):
a.append(random.randint(-25, 35))
print(a)# данный массив
print()
for i in a:
if i%2!=0 and i%3==0:
b.append(i)
print(b)# массив из чисел (не четные, делятся на 3)
for i in b:
c = c*i
print(c)# произведение этих чисел
Объяснение: