![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| dark0ut |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 20.2.2003 Репутация: нет Всего: нет |
Такая задачка. Нужно найти произведение элементов одномерного массива, расположенных между
максимальным и минимальным элементами. Максимальный и минимальный я нашёл, а вот как найти произведение тех, что между ними? |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Примерно так:
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Anklav |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.12.2003 Где: Менск Репутация: нет Всего: 1 |
а если min будет в массиве раньше чем max, надо предусматреть и такой вариант.
Примерный код будет такой(я не сомневаюсь что можно сделать лучше)
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Anklav Ну это понятное дело, что нужно предусматривать все возможные варианты. Я просто лишь дал намек на примерное решение задачи.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
Это сообщение отредактировал(а) Kefir - 21.12.2003, 10:11 |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Почему-то никто не обратил внимание на то, что слово "между" не обязательно должно означать позицию в массиве, а может означать значение элемента (т.е. когда элементы разбросаны по массиву, а нам нужно найти произведение всех тех, что больше чем Min, и меньше чем Max).
-------------------- ![]() |
|||
|
||||
| Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
mr.DUDA, в этом случае задача сведётся к перемножению всех элементов массива, за исключением минимального и максимального, а это не очень интересно. Если известны индексы минимального и максимального значений(если нет, то их можно получить), то я предлагаю такой вариант:
Это сообщение отредактировал(а) Dov - 21.12.2003, 21:03 -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
А ещё мона так.
что, почти, одно и то же. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| vickr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
А почему мы не произвести быструю сортировку (среднее время - О(NlogN)) и найти еще за один проход поизведение элементов, кроме первого и последнеего
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |