99

Напишите пожалуйста на PascalABC Дано N целых чисел. Требуется выбрать из них два…

26 февраля 2023

Напишите пожалуйста на PascalABC Дано N целых чисел. Требуется выбрать из них два таких числа, произведениекоторых максимально. Вводится сначала число N — количество чисел в последовательности (2 ≤ N ≤ 100). Далее записана сама последовательность: N целых чисел, по модулю не превышающих 1000. Выведите два искомых числа в любом порядке. Если существует несколько различных пар чисел, дающих максимальное произведение, то выведите любую из них.

категория: информатика

80

var N: 2… 100; a: array [1… 100] of -1000… 1000; max1, max2, MaxPr, i, j: integer; {MaxPr — максимальное произведение, max1 и max2 — искомые числа}function RangeOverfilling (Number: integer; Index: integer): integer; {Функция, возвращающая число в диапазон} begin if Number in [1… Index] then result: =Number; if Number > Index then result: =Number mod Index; if Number < 1 then result: =Index+Number mod Index; end; begin MaxPr: =-maxint; {Присваиваем максимальному проиведению начальное значение, равное максимальному числу типа integer, взятому со знаком -} writeln ('Введите N'); readln (N); for i: =1 to N do begin writeln ('Введите целое число, по модулю не превышающее 1000'); readln (a[i]); end; for i: =1 to N — 1 do for j: =1 to RangeOverfilling (N — i, N) do if a[i]*a[i+j] > MaxPr then begin MaxPr: =a[i]*a[i+j]; max1: =a[i]; max2: =a[i+j]; end; writeln ('Пара чисел, дающих максимальное произведение: ', max1,' и ', max2); end.

Знаете ответ?

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