Counting Change
Write a recursive function that counts how many different ways you can make change for an amount, given a list of coin denominations. For example, there are 3 ways to give change for 4 if you have coins with denomination 1 and 2: 1+1+1+1, 1+1+2, 2+2.
Do this exercise by implementing the countChange function in Main.scala. This function takes an amount to change, and a list of unique denominations for the coins. Its signature is as follows:
def countChange(money: Int, coins: List[Int]): Int
Once again, you can make use of functions isEmpty, head and tail on the list of integers coins.
Hint: Think of the degenerate cases. How many ways can you give change for 0 CHF(swiss money)? How many ways can you give change for >0 CHF, if you have no coins?
I tried to do like this, but this error occured
object main {
def countChange(money: Int, coins: List[Int]): Int = {
if (money == 0)
1
else if (money > 0 && !coins.isEmpty)
countChange(money - coins.head, coins) + countChange(money, coins.tail)
else
0
}
def main(args: Array[String]): Unit = {
var money = scala.io.StdIn.readInt()
var coins = scala.io.StdIn.readInt()
println(countChange(money, coins))
}
}
type mismatch;
found : Int
required: List[Int]
println(countChange(money, coins))
xhas typeIntthenList(x)has typeList[Int].StdIn.readLinestackoverflow.com/questions/5055349/… andstring.split(" ")stackoverflow.com/questions/5522572/…array.toListtransforms an array into a list (afterstring.split) stackoverflow.com/questions/4982432/…