类型的未定义方法

时间:2014-01-04 15:48:21

标签: java recursion

我正在尝试实施一个程序,该程序计算从硬币列表中获取特定金额的可能性数量,但我收到错误

  

方法硬币(int)未定义类型Money“在此行中的硬币(s-1):
  返回梳子(s-1,金额,硬币)+梳子(s,金额 - 硬币(s-1),硬币);

这是我的代码

class List<T> {
T head;
List<T> tail;

List(T head, List<T> tail) {
    this.head = head;
    this.tail = tail;
}
static <U> List<U> node(U head, List<U> tail) {
    return new List<U>(head, tail);
}
}

public class Money{

//should count number of combinations to get change amount amount

static int comb(int s, int amount, List<Integer> coins) { 
         if (amount == 0 ) 
                return 1;

     else if (amount < 0) 
            return 0;

     return comb(s-1, amount, coins) + comb(s, amount-coins(s-1), coins); 

有什么问题?

1 个答案:

答案 0 :(得分:1)

我认为您的问题是您尝试访问列表元素的方式。

return comb(s-1, amount, coins) + comb(s, amount-coins(s-1), coins); 

应该是:

return comb(s-1, amount, coins) + comb(s, amount-coins.get(s-1), coins);

Coins是一个列表,因此您应该使用coins.get(index)来访问单个元素。 Here是关于Java列表的更多信息。