Моей программе поручено подсчитать все возможные комбинации получения значения T со списком монет с различными (и некоторыми идентичными) значениями с ограниченным количеством монет.
Две монеты с разными именами могутимеют одинаковое значение, например монеты "Gold" и "Topaz" имеют значение 3.
public static int change(int target, ArrayList<GemCoin> coinStocks) {
int[] combi = new int[target + 1];
combi[0] = 1;
for (GemCoin g: coinStocks) {
for (int i = 1; i < combi.length; i++) {
if (i >= g.getValue() && g.getStocks() > 0) { ///if
combi[i] += combi[i - d.getChips()];
}
}
}
for(int im : combi){
System.out.println(im);
}
return combi[target];
}
Это моя общая идея, но я заметил, что запасы монет "закончились" раньшедостижение последнего индекса в комбинации, хотя существует комбинация с этой монетой.