Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.009 c
6-27624
ilka
2003-08-13 15:53
2003.10.09
вопрос по TIdSMTP


14-27649
dimon1979
2003-09-19 12:55
2003.10.09
Ассемблер


1-27535
Sensor-x
2003-09-30 00:06
2003.10.09
Как правильно определить время?


3-27327
Kirillka
2003-09-17 11:42
2003.10.09
конвертация


14-27679
kaif
2003-09-09 11:31
2003.10.09
Кони в сенате





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский