• Предмет: Информатика
  • Автор: nikasharl025
  • Вопрос задан 2 года назад

Дан массив А (120), заполненный трехзначными случайными числами. Найти произведение тех элементов, которые принадлежат отрезку (30,60) и сумму тех элементов, которые кратны 6. ПАСКАЛЬ


zhoramalushevpegkpk: Произведение 30-ти трёхзначных элементов? Вы в курсе, что такое число будет содержать около сотни знаков?
zhoramalushevpegkpk: Для меня не составит труда написать программу для рассчёта этих чисел, но все же я думаю что неправильно понял смысл этого задания
nikasharl025: Да,в курсе.Если не сложно,то напишите пожалуйста
nikasharl025: Просто написать программу,а числа мне не нужны

Ответы

Ответ дал: zhoramalushevpegkpk
1

Ответ:

begin

var N:array of integer;

setlength(n,120);

N.FillRandom(100,999);

 

var b:BigInteger:=1;

for var L:=30 to 60 do

begin

  b:=b*N[L];

end;

writeln('Произведение элементов принадлежащих [30,60]: ',abs(B));

writeln('Сумма элементов кратных 6: ',N.FindAll(x -> x mod 6 = 0).Sum);

end.

Примечание:

1) Для записи числа использован biginteger - динамическая ячейка числа, единственная, в которую можно поместить полученный ответ

2) Сумма элементов кратных 6 находится функцией .Sum примененной к массиву, полученному от функции .FindAll

3) FindAll проверяет заданный массив по восходящему параметру, т.е. каждая следующая ячейка при проверке обозначается как некая переменная (в данном случае, как х) до знака "->", а после к ней применяется выражение (x mod 6 = 0 - т.е. элемент при делении на 6 не должен иметь остатка)

Похожие вопросы