Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1207744607
Cyrax
2008-04-09 16:36
2008.05.25
Чем отличается IMEI от серийного номера (s/n) ?


2-1209224503
No_Dead
2008-04-26 19:41
2008.05.25
Почему выдается не правильный размер файла:(


15-1207828107
@!!ex
2008-04-10 15:48
2008.05.25
OpenGL артефакты на FPC


2-1209839798
Vinum
2008-05-03 22:36
2008.05.25
Как с помощью моей программы открыть файл


15-1208107582
Дмитрий С
2008-04-13 21:26
2008.05.25
Нормальная java-аська





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский