Cześć pisze sobie program z użyciem problemu plecakowego. Potrzebuję rozwiązania rekurencyjnego z którym nie mogę sobie poradzić. Znalazłem fragment kodu w java ale nie moge przenieść go na C++ bo nie radze sobie min z System.arraycope. Bardzo prosze o pomoc w zmianie tego kodu na c++ pozdrawiam.
static void Pakuj(int i, int obecnaWaga) {
if (i == liczba_przedmiotow || czy_prawda == true) {
if (obecnaWaga > maxWaga) {
maxWaga = obecnaWaga;
System.arraycopy(rzecz, 0, wynik, 0, liczba_przedmiotow);
}
} else {
if (obecnaWaga + waga[i] == pojemnosc_plecaka) {
rzecz[i] = true;//zaznacza indeksy pod ktorymi znajdują się szukane elementy
obecnaWaga += waga[i];
if (obecnaWaga > maxWaga) {
maxWaga = obecnaWaga;
System.arraycopy(rzecz, 0, wynik, 0, liczba_przedmiotow);
}
czy_prawda = true;//sprawdza czy znaleziono elementy
} else {
if (obecnaWaga + waga[i] < pojemnosc_plecaka) {
rzecz[i] = true;
obecnaWaga += waga[i];
Pakuj(i + 1, obecnaWaga);
rzecz[i] = false;
obecnaWaga -= waga[i];
}
Pakuj(i + 1, obecnaWaga);
}
}
}