Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 最优变更的动态规划_Java_Dynamic Programming - Fatal编程技术网

Java 最优变更的动态规划

Java 最优变更的动态规划,java,dynamic-programming,Java,Dynamic Programming,我正在编写一个程序,它将为给定的一组面额提供一种最佳的方式来获得正确的变化。例如,如果用户输入面额“10,50 60”,输出将是“1-10美分硬币,1-50美分硬币兑换60美分”。这是我到目前为止编写的代码,但仍有一些调试要做 在定义变量方面,金额是需要解决的变化,面额是组成硬币货币的不同整数的“计数” 在尝试编译时,我遇到了许多错误,例如sum和previous的返回,询问sum计数中面额总数是否小于或等于previous中面额总数的if语句,以及方法参数中的“identifier expec

我正在编写一个程序,它将为给定的一组面额提供一种最佳的方式来获得正确的变化。例如,如果用户输入面额“10,50 60”,输出将是“1-10美分硬币,1-50美分硬币兑换60美分”。这是我到目前为止编写的代码,但仍有一些调试要做

在定义变量方面,金额是需要解决的变化,面额是组成硬币货币的不同整数的“计数”

在尝试编译时,我遇到了许多错误,例如sum和previous的返回,询问sum计数中面额总数是否小于或等于previous中面额总数的if语句,以及方法参数中的“identifier expected”错误

任何形式的帮助都将不胜感激

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;jif(sum.length()您不能为方法指定参数命名
sum.length
,这是不允许的。请将它们更改为
sumLength
或其他名称。与
previous.length
相同。您的这两个方法参数错误
int sum.length,int previous.length
。请指定正确的参数。您也正在使用
>sum和previous
所以我认为这些参数应该被
sum和previous
替换,它们似乎可以处理这个特定的错误。我是否必须在某个地方指定这两个参数是每个计数各自的长度?不,只需将长度传递给方法,如
makeOptimalChange(面额、金额、当前金额、sum.length、previous.length)
您的返回类型是
理货
,但您也返回一个整数