![]() |
Цитата:
|
как открывать файл для чтения...я забув :(
assign(f,'fail'); а потом? |
Var fiiii:text;
Reset(fiii); Read(fiii, ///); Close (fiiii); |
Цитата:
|
є массив чисел які не більші 3000 по модулю...потрібно знайти таких три числа добуток яких найбільший з цих всіх чисел....вивести ці числа(з котрих добуток найбільший) на екран...
допоможіть будь ласка... |
Цитата:
возможен такой быть вариант... чтоб его нету нужно проверить все виды соединения чисел...вот тут я и соатновился...мозги уже не работают.. :cry: нада чтоб было максимальное из всех возможных.. http://zvn.uriit.ru/ задание третьего занятия... може тут лучше описано |
Цитата:
Т.е. твой пример [9 8 0 -1] будет отсортирован в вид [9 8 -1 0]. Так, как произведение первых трех меньше нуля, тогда макс. произведение, удовлетворяющее условие задачи, действительно будет ноль! Можно еще и так: 1. Найти макс число во всем массиве. 2. Заменить его на ноль и продолжать поиск с таким рассчетом, чтобы произведение было найбольшим. И т.д, и т.п. Но этот алгоритм не пройдет такой тест: 10 9 -8 -7 6 5 4, т.к.: 10*9*6=540, а 10*(-8)*(-7)=560. Хотя, в принципе, и первый алгоритм не пройдет этот тест. Мда, надо подумать... |
Цитата:
пришел к такому выходу что найбольшее произведение будет или меньше нуля (если в масиве есть или только одно плюсовое или все минусовые) или ноль(если произведение всех чисел дайет меньше нуля) или же плюсовое( два самых маленьких минуса и самый большой плюс)... если же отсеивать по модулю тогда будет намного больше гемороя со знаком числа чем сеять по фактическому значению числа |
ОК, идея такова:
1. Найти максимальное число Max_poz, т.е. найбольшее из положительных. Заменить его в массиве на ноль. 2. Найти ДВЕ пары числе: 2 найбольших положительных и два найбольших (по модулю) отрицательных. Проверить, что больше: Poz1*Poz2 или Neg1*Neg2. Вывести в файл Max_poz, и соответствующую пару чисел. |
Цитата:
|
Поточний час: 16:21. Часовий пояс GMT +3. |
Copyright ©2000 - 2025