Я пытаюсь запрограммировать проблему изменения монет в Scala с помощью рекурсии. Код, который я написал, выглядит следующим образом.
def countChange(money: Int, coins: List[Int]): Int = {
def ways(change: List[Int], size: Int, capacity: Int): Int = {
if(capacity == 0) 1
if((capacity < 0) || (size <= 0)) 0
//println and readLine to check and control each recursive call.
println("calling ways(",change, change.length-1, capacity,") + ways(",change, change.length, capacity - change(change.length - 1),")")
readLine()
//
ways(change, change.length-1, capacity) + ways(change, change.length, capacity - change(change.length - 1))
}
ways(coins, coins.length, money)
}
При запуске кода он не прерывается и продолжает вызов первого рекурсивного вызова. Где я ошибаюсь?