Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Поиск суммы   Найти похожие ветки 

 
user_   (2008-04-10 13:05) [0]

Необходимо найти элементы (числа), которые бы давали необходимую сумму.

Например:
2,5,7,8,10,3,55

сумму 14 дают числа: 2,5,7

Есть ли готовые примеры ?

Заранее благодарен !


 
tButton ©   (2008-04-10 13:19) [1]

> Есть ли готовые примеры ?
нету
> Заранее благодарен !
не за что

ПыСы
разрабатывай алгоритм перебора.


 
korneley ©   (2008-04-10 13:39) [2]


> Есть ли готовые примеры ?Заранее благодарен !

Заготовлена ли необходимая сумма? С валютой заранее согласен!


 
user_   (2008-04-10 13:49) [3]

и сикока будет ваш пример стоить ?


 
DiamondShark ©   (2008-04-10 13:53) [4]


> user_   (10.04.08 13:49) [3]
> и сикока будет ваш пример стоить ?

Ровно на 1 рубль больше, чем у тебя есть


 
user_   (2008-04-10 13:57) [5]

есть 99 р.


 
KSergey ©   (2008-04-10 14:03) [6]

Автор, а у самого хоть какие-нибудь мысли/попытки сделать есть?
Хотя бы не работающие или джающие не верные результаты....

Или есть желание просто купить готовый ответ?

К стати, надо найти все возможные варианты получения суммы из элементов или достаточно одного любого подходящего?


 
Palladin ©   (2008-04-10 14:11) [7]

Procedure Dummy0006(Const a:Array of Integer;p_nValueToAssemble:Integer;rp_theResults:TStrings);
Var
theSrc:TList;
theDst:TList;

Function _ArrayToList(Const a:Array of Integer):TList;
Var
 i:Integer;
Begin
 Result:=TList.Create;
 For i:=0 to Length(a)-1 Do Result.Add(Pointer(a[i]));
End;

Function _ListToStr(p_theList:TList;p_nAddNum:Integer):String;
Var
 i:Integer;
Begin
 For i:=1 to p_theList.Count-1 Do Result:=Result+IntToStr(Integer(p_theList[i]))+",";
 Result:=Result+IntToStr(p_nAddNum);
End;

Function _CloneAndExclude(p_theList:TList;p_nIndexToExclude:Integer):TList;
Var
 i:Integer;
Begin
 Result:=TList.Create;
 For i:=0 to p_theList.Count Do
  If i<>p_nIndexToExclude Then Result.Add(p_theList[i]);
End;

Function _CloneAndAdd(p_theList:TList;p_nValue:Integer):TList;
Begin
 Result:=TList.Create;
 Result.Assign(p_theList);
 Result.Add(Pointer(p_nValue))
End;

Procedure _GoGo(p_nValue:Integer;p_theDst,p_theSrc:TList);
Var
 theSubDst:TList;
 theSubSrc:TList;
 i:Integer;
Begin
 For i:=0 to p_theSrc.Count-1 Do
  If p_nValue+Integer(p_theSrc[i])=p_nValueToAssemble Then rp_theResults.Add(_ListToStr(p_theDst,Integer(p_theSrc[i]))) Else
  If p_nValue+Integer(p_theSrc[i])<p_nValueToAssemble Then
   Begin
    theSubDst:=_CloneAndAdd(p_theDst,Integer(p_theSrc[i]));
    theSubSrc:=_CloneAndExclude(theSubDst,i);
    Try
     _GoGo(p_nValue+Integer(p_theSrc[i]),theSubDst,p_theSrc);
    Finally
     theSubDst.Free;
     theSubSrc.Free;
    End;
   End;
End;

Begin
theSrc:=_ArrayToList(a);
theDst:=TList.Create;
Try
 _GoGo(0,theDst,theSrc);
Finally
 theSrc.Free;
 theDst.Free;
End;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
Dummy0006([2,5,7,8,10,3,55],14,Memo1.Lines);
end;


держи, совсем бесплатно, но есть 1 нюанс и 4 ошибки - 2 функицональных и 2 логических
ищи, найдешь и исправишь все заработает :)


 
Palladin ©   (2008-04-10 14:13) [8]

а нюанса кстати даже два...


 
palva ©   (2008-04-10 14:16) [9]


> найдешь и исправишь все заработает :)

Ну садиисты...


 
user_   (2008-04-10 14:22) [10]


> Palladin ©   (10.04.08 14:11) [7]

Спасибо !
Найду нюансы и ошибки, 100 р. вышлю на телефон положишь :o)

W Мани давай.


 
user_   (2008-04-10 14:24) [11]


> KSergey ©   (10.04.08 14:03) [6]

Да мысли есть время нет !


 
DiamondShark ©   (2008-04-10 14:26) [12]


> время нет !

Ты тут уже полтора часа сидишь.
За это время сносно работающий тупой перебор написать можно было уже давно.


 
Palladin ©   (2008-04-10 14:26) [13]


> Найду нюансы и ошибки, 100 р. вышлю на телефон положишь
> :o)

а вот это уже воспринимается как оскорбление... по осторожней...


 
Anatoly Podgoretsky ©   (2008-04-10 14:39) [14]

> Palladin  (10.04.2008 14:13:08)  [8]

Три - первые два нюанса устраняются с помощью третьего.


 
Дмитрий С   (2008-04-10 23:47) [15]

Интересно: тут хоть раз, хоть кто-то продал свой готовый пример кому-нибудь?


 
korneley ©   (2008-04-11 00:35) [16]


> Дмитрий С   (10.04.08 23:47) [15]
> Интересно: тут хоть раз, хоть кто-то продал свой готовый
> пример кому-нибудь?
Думаю - нет. Не развал это, чтобы "готовые примеры" продавать. Если мы про форум говорим, конечно.



Страницы: 1 вся ветка

Текущий архив: 2008.05.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
2-1209670456
Jebiga
2008-05-01 23:34
2008.05.25
Как работать с GIF файлами?


2-1209552738
корелаб
2008-04-30 14:52
2008.05.25
FB embedded и чарсет


2-1209536087
fb switcher
2008-04-30 10:14
2008.05.25
ADO + IB Provider + массовая вставка записей


2-1209716088
mixcraft
2008-05-02 12:14
2008.05.25
проблема при копировании записи


15-1207986208
legandr
2008-04-12 11:43
2008.05.25
Перевернулась система координат в AutoCAD