Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2016, 13:17   #1
adylet
Новичок
Джуниор
 
Регистрация: 12.11.2016
Сообщений: 1
Восклицание Наибольшее произведение

Дано N-целых чисел.Требуется выбрать из них три таких числа, произведение которых максимально.
Входные данные: Во входном файле записано число N-количество чисел в последовательности(3≤N1000000). Далее записана сама последовательность: N целых чисел, по модулю не превышающих 30000.
Выходные данные: В выходной файл выведите три искомых числа в любом порядке. Если существует несколько различных троек чисел, дающих максимальное произведение, то выведите любую из них:
Пример :
Input.txt
9
3 5 1 7 9 0 9 -3 10

Output.txt
9 10 9

2)
Input.txt
3
-5 -30000 -12
Output.txt
-5 -30000 -12
Подскажите пожалуйста очень надо!!!

Последний раз редактировалось adylet; 12.11.2016 в 13:34.
adylet вне форума Ответить с цитированием
Старый 12.11.2016, 19:53   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Определи сколько положительных и отрицательных чисел на входе и есть ли 0. Запомни по каждой позиции не более трех наибольших положительных, наибольших отрицательных и наименьших отрицательных. А дальше куча if-ов и результат. И ни каких больших массивов и массового умножения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.11.2016, 12:57   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

согласен с Аватар

только проще. ноль вообще не надо запоминать.
запоминать нужно три наибольших положительных и два наибольших (по модулю) отрицательных.

и сравнить ПроизведениеТрёхПоложительных с ПроизведениеДвухОтрицательныхИОдног оМаксимальногоПоложительного
что больше - то и ответ.

adylet, алгоритм понятен? Теперь программу без труда, надеюсь, напишете.


p.s. и на форуме было решение этой задачи (выбрать из них три таких числа, произведение которых максимально.)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2016, 13:15   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А вдруг все отрицательные? Тогда и максимальные отрицательные потребуются, а не только минимальные. Ноль надо: -5, 0, 13, 1 -> макс произведение 0
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.11.2016, 22:55   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Да, согласен.

Цитата:
А вдруг все отрицательные? Тогда и максимальные отрицательные потребуются,
ну, точнее, нужно хранить три максимальных, вне зависимости от их знака и два максимальных по модулю отрицательных (если отрицательные есть).
Ноль такое же число, как любое другое, отдельно их наличие учитывать нет смысла.


я же говорил, что на форуме эта задача была.

http://www.programmersforum.ru/showthread.php?t=263208

http://www.programmersforum.ru/showthread.php?t=167374

Последний раз редактировалось Serge_Bliznykov; 13.11.2016 в 22:58.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наибольшее число yana1996 Visual C++ 1 29.02.2016 18:30
Наибольшее четное lerenia Помощь студентам 11 16.04.2013 21:33
11. Найти произведение элементов нечетных строк массива. Вывести сам массив и произведение. p-6 Паскаль, Turbo Pascal, PascalABC.NET 1 29.11.2012 23:37
Найдите наибольшее произведение пяти последовательных цифр в 1000-значном числе. RealBig Помощь студентам 4 30.06.2011 15:10
Вычислить произведение P кубов трех чисел a, b и c, если их сумма меньше нуля, произведение P модулей NoUserName Помощь студентам 3 01.03.2009 18:10