Algorytm for j := 1 to n do for i := 1 to M do if i – s[j]  0 then if koszt[i]< (koszt[i-s[j]] + w[j])then koszt [i] := koszt[i-s[j]] + w[j]; b[i] :=j fi fi od od koszt[i] = największa wartość jaka może być osiągnięta jeśli pojemność plecaka wynosi i b[i] ostatni element, który został dodany do plecaka by osiągnąć wartość maksymalną.