Java 最优变更的动态规划
我正在编写一个程序,它将为给定的一组面额提供一种最佳的方式来获得正确的变化。例如,如果用户输入面额“10,50 60”,输出将是“1-10美分硬币,1-50美分硬币兑换60美分”。这是我到目前为止编写的代码,但仍有一些调试要做 在定义变量方面,金额是需要解决的变化,面额是组成硬币货币的不同整数的“计数” 在尝试编译时,我遇到了许多错误,例如sum和previous的返回,询问sum计数中面额总数是否小于或等于previous中面额总数的if语句,以及方法参数中的“identifier expected”错误 任何形式的帮助都将不胜感激Java 最优变更的动态规划,java,dynamic-programming,Java,Dynamic Programming,我正在编写一个程序,它将为给定的一组面额提供一种最佳的方式来获得正确的变化。例如,如果用户输入面额“10,50 60”,输出将是“1-10美分硬币,1-50美分硬币兑换60美分”。这是我到目前为止编写的代码,但仍有一些调试要做 在定义变量方面,金额是需要解决的变化,面额是组成硬币货币的不同整数的“计数” 在尝试编译时,我遇到了许多错误,例如sum和previous的返回,询问sum计数中面额总数是否小于或等于previous中面额总数的if语句,以及方法参数中的“identifier expec
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;
}
public static talk-change(整数[]面额,整数金额,
计数当前金额,整数总和长度,整数上一个长度){
整数和=0;
理货[][]理货表=新理货[面额.长度][金额+1];
以前的理货=新理货(面额.长度-1);
理货差异=新理货(面额-行);
对于(int i=0;i=面额[索引]){
Tally oneCoin=新计数(面额、长度);
一个硬币。一个元素(硬币,1);
对于(int j=0;j if(sum.length()您不能为方法指定参数命名sum.length
,这是不允许的。请将它们更改为sumLength
或其他名称。与previous.length
相同。您的这两个方法参数错误int sum.length,int previous.length
。请指定正确的参数。您也正在使用>sum和previous
所以我认为这些参数应该被sum和previous
替换,它们似乎可以处理这个特定的错误。我是否必须在某个地方指定这两个参数是每个计数各自的长度?不,只需将长度传递给方法,如makeOptimalChange(面额、金额、当前金额、sum.length、previous.length)
您的返回类型是理货
,但您也返回一个整数