我正在编写一个程序,它将为给定的一组面额提供一种获得正确变化的最佳方法。例如,如果用户输入面额“10,50 60”,则输出为“1-10分硬币,1-50分硬币60美分”。这是我到目前为止编写的代码,但仍有一些调试要做。
在定义变量方面,金额是需要解决的变化,而面额是构成硬币货币的不同整数的“统计”。
我在尝试编译时遇到了一些错误,比如sum和previous的返回,if语句询问总和中的总面值是否小于或等于之前的一个。 ,以及方法参数中的'标识符预期'错误。
任何形式的帮助都将受到赞赏。
public static Tally makeOptimalChange(int[] denominations, int amount,
Tally currentAmount, int sum.length, int previous.length) {
int sum = 0;
Tally[][]tallyTable = new Tally[denominations.length][amount + 1];
Tally previous = new Tally(denominations.length - 1);
Tally difference = new Tally(denominations - row);
for (int i = 0; i < denominations.length; i++) {
tallyTable[i][0] = new Tally(denominations.length);
if (amount >= denominations[index]) {
Tally oneCoin = new Tally(denominations.length);
oneCoin.setElement(whichCoin, 1);
for (int j = 0; j < denominations.length(); j++) {
sum = getElement(difference) + getElement(oneCoin);
}
return sum;
} else {
return previous;
}
if (sum.length() <= previous.length()) {
return sum;
}
else {
return previous;
}
}
return Tally.IMPOSSIBLE;
}