Форум: "Потрепаться";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
Вниз* Задача * Найти похожие ветки
← →
___Nikolay (2003-09-19 05:42) [0]m - динамический массив целых чисел (например: 8,7,25,2,89,3,5)
n - целое число (например: 10)
Нужно представить n в виде всех возможных сумм из чисел масива (если это возможно)
Например для этого случая: 10 = 7 + 3, 10 = 8 + 2, 10 = 5 + 2 + 3
Просто алгоритм опишите pls
← →
KSergey (2003-09-19 07:52) [1]Цену озвучте
← →
HolACost! (2003-09-19 08:29) [2]Пролог тебе поможет!
KSergey © (19.09.03 07:52) [1]
Думаещь заплатит - наивный!
← →
Doid (2003-09-19 09:53) [3]1. Сортишь массив m по возрастанию
2. Применяешь к заданному массиву m следующую функцию:
(_LastPointer
- указатель (индекс элемента массива) на последнее число, которое <= n)
void RecurseFunc(int _CurrentPointer, int _IncrementalSum, Chain _SolveChain)
{
for (int i = _CurrentPointer; i <= _LastPointer; i++)
{
_IncrementalSum += m[i];
if (_IncrementalSum > n)
break;
AddToSolveChain(m[i]);
if (_IncrementalSum == n)
OutputSolveChain(_SolveChain);
if (_IncrementalSum < n)
RecurseFunc(i + 1, _IncrementalSum, _SolveChain);
}
}
← →
Doid (2003-09-19 09:57) [4]Пардон :) вышла маленькая ошибочка.
void RecurseFunc(int _CurrentPointer, int _IncrementalSum, Chain _SolveChain)
{
int TemporarySum;
for (int i = _CurrentPointer; i <= _LastPointer; i++)
{
TemporarySum = _IncrementalSum + m[i];
if (TemporarySum > n)
break;
AddToSolveChain(m[i]);
if (TemporarySum == n)
OutputSolveChain(_SolveChain);
if (TemporarySum < n)
RecurseFunc(i + 1, TemporarySum, _SolveChain);
}
}
← →
___Nikolay (2003-09-19 10:57) [5]Doid ©
БОЛЬШОЙ ПАСИБ!
← →
Думкин (2003-09-19 11:01) [6]> ___Nikolay © (19.09.03 10:57)
> Doid ©
>
> БОЛЬШОЙ ПАСИБ!
А зачет кому будет тебе или Doid © ??
← →
___Nikolay (2003-09-19 11:16) [7]2 Думкин ©
Эт не для зачёта
друга на работу принимают - попросил помочь
ну я не долго думая - закинул сюда
(одна голова хорошо... а две уже не красиво =)
← →
NickBat (2003-09-19 11:45) [8]А твое хобби не смогло помочь другу? :)))
← →
MBo (2003-09-19 12:01) [9]Хм. Выложено 5 задач, значит, каждому ответившему - 20% оклада недоразвитого программиста.
← →
Palladin (2003-09-19 12:04) [10]Странные работодатели... подобное нужно решать на листочке бумаги, не отходя от места, и давать полчаса или час...
← →
Doid (2003-09-19 12:09) [11]// Palladin © (19.09.03 12:04) [10]
Это уже будет чем-то по срокам ACM-овскую олимпиаду напоминать :)
← →
KSergey (2003-09-19 13:13) [12][7] ___Nikolay © (19.09.03 11:16)
Эт не для зачёта
друга на работу принимают - попросил помочь
Ответьте, пожалуйста, мне просто любопытно: а работать он как будет? Будет в форумы постить свои ТЗ, выданные начальством? Или того лучше вначале просить "помочь" это ТЗ ему составить?
Или суть в том, чтобы устроиться?
PS
А я то всегда удивляюсь: откуда такие вопросы беруться на форумах? ;)
← →
Игорь Шевченко (2003-09-19 15:59) [13]KSergey © (19.09.03 13:13)
> А я то всегда удивляюсь: откуда такие вопросы беруться на
> форумах? ;)
А авторам вопросов своей головой нельзя думать - слишком ценный ресурс, можно и перенапрячь невзначай. Зачем, когда всегда найдется лох, который на халяву ответит.
← →
Skier (2003-09-19 16:05) [14]
> Зачем, когда всегда найдется лох, который на халяву ответит.
Зачем так категорично ? :)
Может это и не лох вовсе, а человек, которому интересно подумать своей головой (для тренировки :) ) в отличии от автора вопроса...
Cие всегда похвально, IMHO.
← →
Владислав (2003-09-19 16:05) [15]LOL :)))
← →
Игорь Шевченко (2003-09-19 16:09) [16]Skier © (19.09.03 16:05)
> Зачем так категорично ? :)
Дык, это ж не мой ход мыслей, а авторов :))
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c