Witam mam do napisania problem plecakowy(metoda siłowa) za pomocą rekurencji. Napisałem program w wersji iteracyjnej, lecz przy każdej próbie przerobienia go na wersję rekurencyjną otrzymuję błędne odpowiedzi był bym wdzięczny za wskazówki jak ten algorytm zapisać w wersji rekurencyjnej.
Oto co udało mi się napisać:
static String pakowanie(int[] tab_elementow, int ilosc_elementow, int pojemnosc_plecaka) {
int waga = 0;
for (int i = 0; i < ilosc_elementow; i++) {
for (int j = i + 1; j < ilosc_elementow; j++) {
waga = pojemnosc_plecaka;
waga -= tab_elementow[i];
wynik = "";
for (int k = j; k < ilosc_elementow; k++) {
if ((waga - tab_elementow[k] >= 0)) {
waga -= tab_elementow[k];
wynik += tab_elementow[k] + " ";
}
if (waga == 0) {
return pojemnosc_plecaka + " = " + tab_elementow[i] + " " + wynik;
}
}
}
}
return "BRAK";
}