-
07 April 2021
Информатика
- Автор: morebrains
В массиве из N элементов, заданных случайным образом из промежутка [-20;60], найдите произведение всех элементов, больших 20 (pascal abc)
-
-
-
07 April 2021
- Ответ оставил: Wani4kaa
Из сложностей может возникнуть только генерация случайного значения. Функция random(x) возвращает случайное число от 0 до x-1. Когда функция возвращает 0 (минимальное значение), нам нужно, чтобы оно превратилось в 20. Будем отнимать 20 от значения функции random(x):
a[i] := random(x) - 20;
Самое большое число, которое мы хотим получить - 60. Так как мы отнимаем 20, самое большое число, которое должна вернуть функция random(x) равно 80. Значит, x равен 81:
a[i] := random(81) - 20;
Кстати, произведение может получаться слишком большим, а тип данных integer может хранить числа не больше 32767. Поэтому мы должны хранить произведение как longint. Оно позволяет хранить числа до [tex]2^{31}-1[/tex]
Код
var
a: array[1..1000] of integer;
i, n: integer;
ans: longint;
begin
read(n);
ans:=1;
for i:=1 to n do
begin
a[i]:=random(81)-20;
if a[i] > 20 then ans:=ans*a[i];
end;
writeln(ans);
end.
-
-
- НЕ НАШЛИ ОТВЕТ?
Если вас не устраивает ответ или его нет, то попробуйте воспользоваться поиском на сайте и найти похожие ответы по предмету школьной программы: информатика.
На сегодняшний день (22.02.2025) наш сайт содержит 16354 вопросов, по теме: информатика. Возможно среди них вы найдете подходящий ответ на свой вопрос. -
Нажимая на кнопку "Ответить на вопрос", я даю согласие на обработку персональных данных
Ответить на вопрос