Scala 增加for循环中的计数器

Scala 增加for循环中的计数器,scala,Scala,我有一个类似这样的scala代码 object Main { def countChangeIter(money: Int, coins: List[Int], counter: Int): Int= if (money == 0) 1 else if (money < 0) 0 else { for (i <- coins.indices) { counter = counter + countChangeIter(mone

我有一个类似这样的scala代码

object Main {
  def countChangeIter(money: Int, coins: List[Int], counter: Int): Int=

    if (money == 0)  1
    else if (money < 0)  0
    else {
      for (i <- coins.indices) {
      counter = counter + countChangeIter(money - coins(i), coins.drop(i), 0)


  }

    return counter
}


  def countChange(money: Int, coins: List[Int]): Int = countChangeIter(money, coins, 0)


}
objectmain{
def countChangeIter(货币:Int,硬币:List[Int],计数器:Int):Int=
如果(货币==0)1
否则,如果(钱<0)0
否则{

对于(i你可以这样做:

 object Main {
      def countChangeIter(money: Int, coins: List[Int], counter: Int): Int=

        if (money == 0)  1
        else if (money < 0)  0
        else {
          var myCounter = counter
          for (i <- coins.indices) {
          myCounter = myCounter + countChangeIter(money - coins(i), coins.drop(i), 0)


      }

        return myCounter
    }


      def countChange(money: Int, coins: List[Int]): Int = countChangeIter(money, coins, 0)


    }
objectmain{
def countChangeIter(货币:Int,硬币:List[Int],计数器:Int):Int=
如果(货币==0)1
否则,如果(钱<0)0
否则{
var myCounter=计数器

对于(i你可以这样做:

 object Main {
      def countChangeIter(money: Int, coins: List[Int], counter: Int): Int=

        if (money == 0)  1
        else if (money < 0)  0
        else {
          var myCounter = counter
          for (i <- coins.indices) {
          myCounter = myCounter + countChangeIter(money - coins(i), coins.drop(i), 0)


      }

        return myCounter
    }


      def countChange(money: Int, coins: List[Int]): Int = countChangeIter(money, coins, 0)


    }
objectmain{
def countChangeIter(货币:Int,硬币:List[Int],计数器:Int):Int=
如果(货币==0)1
否则,如果(钱<0)0
否则{
var myCounter=计数器

对于(我可以为您提供一个您期望的示例吗?这里有很多问题,而不仅仅是试图将
val
当作
var
来使用。如果
money==0
,您返回的是
计数器,而不是
1
。如果
money<0
,这与if
money<0
一样。如果您试图计算coi的集合有多少种不同的方式。)ns可以实现一个目标和,这个算法甚至不接近。你能发布一个你期望的样本吗?这里有很多问题,而不仅仅是试图使用
val
,就好像它是
var
。如果
money==0
你返回的是
计数器,而不是
1
。如果
money<0
,那么你返回的是
计数器,而不是
试图计算一组硬币有多少种不同的方式可以达到目标总和,这个算法甚至不接近。