动态编程以实现最佳变化

时间:2015-04-24 06:26:59

标签: java dynamic-programming

我正在编写一个程序,它将为给定的一组面额提供一种获得正确变化的最佳方法。例如,如果用户输入面额“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;
}

0 个答案:

没有答案