![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Rhc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 30.12.2013 Репутация: нет Всего: нет |
Всем привет! Помогите оформить или подсказать код к вот такой задаче:
1. Вводится число, означающее количество элементов массива. 2. Разделить элементы массива на 2 группы так, что бы разность между ними была минимальна. Например, вводим: 3 1 3 5 Получаем: 1 Или ещё 4 1 1 1 1 Получаем: 0 Как я решил эту задачу: (Допустим, входные данные были: 3 1 3 5) 1. Ищем сумму и делим на два (1+3+5)/2=4,5. 2. Нужен массив, длина которого будет в 2 раза меньше, чем длина введённого. 2.1. Если длина массива нечётная, то округлить длину массива в меньшую сторону. 3. "Засовываем" все возможные комбинации чисел в наш обрезанный массив и искать разность чисел с тем, что получилось в п. 1. 3.1. Разность брать по модулю, чтобы не было геморроя. 4. Наименьшая возможная разность и будет решением, но не будет ответом, так как ответом будет эта минимальная разность умноженная на два. Как теперь всё это оформить в виде кода? |
|||
|
||||
| de_Nis |
|
|||
![]() Старательный ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 19.10.2006 Где: Молдова Репутация: нет Всего: 6 |
Попробуем применить твой алгоритм к следующему набору цифр: 1, 3, 5, 9.
1. Ищем сумму и делим на два: (1+3+5+9)/2=9 2. Нужен массив, длина которого будет в 2 раза меньше, чем длина введённого. Для нашего случая: 4/2=2, то есть массив из двух элементов. Но ответ: массив из одного элемента 9 или из трех 1, 3, 5. Видно, что предложенный тобой алгоритм не работает. Поэтому до "Как теперь всё это оформить в виде кода? " нужно найти правильный алгоритм. А это - вопрос в раздел "Форум -> Технологии и алгоритмы -> Алгоритмы" И только найдя алгоритм, стоит задавать вопрос о его реализации на конкретном языке программирования. Это сообщение отредактировал(а) de_Nis - 31.12.2013, 18:36 --------------------
Несчастлив не тот, у кого ничего нет, а тот, кто ничего не хочет… |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |