В массиве из N частей, данных случайным образом из интервала [-20;60],

В массиве из N частей, данных случайным образом из интервала [-20;60], найдите произведение всех элементов, великих 20 (pascal abc)

Задать свой вопрос
1 ответ

Из сложностей может возникнуть только генерация случайного значения. Функция 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. Оно дозволяет беречь числа до 2^31-1


Код

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] gt; 20 then ans:=ans*a[i];

 end;

 writeln(ans);

end.


, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт