Форум: "Прочее";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизПоиск суммы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c