Siemka, szukam pomocy w zmianie funkcji na rekurencyjną aby pozbyć się pętli. Ktoś ma może pomysł ?
void funkcja(vector<int>& a, vector<int>& b, int tab[], int waga, int k) {//a mozliwosc b optymalny
int suma;
for (int j = k - 1; j >= 0; j--)///////////////////////////////////////////
{
suma = 0;
a.clear();
for (int i = j; i >= 0; i--)
{
if (tab[i] == waga)
{
a.push_back(tab[i]);
}
if (tab[i] > waga) continue;
if (suma + tab[i] > waga)
continue;
suma += tab[i];
a.push_back(tab[i]);
}
if (suma == waga)
break;
if (sumaW(b) < sumaW(a))
{
b.clear();
for (int i = 0; i< a.size(); i++)
b.push_back(a[i]); //kopiowanie wektora
}
}////////////////////////////////////////////////////////////////////
if (suma != waga)
{
cout << "BRAK";
}
else
{
cout << "Istnieje taka mozliwosc, nalezy spakowac elementy o masach: ";
for (int i = 0; i< a.size(); i++)
{
cout << a[i] << " ";
}
}
}