println(countChange(300,List(500,5,50,100,20,200,10)))
def countChange
(money
: Int, coins
: List
[Int
]): Int
= {
0
{
val diff
= money - coins.
head countChange( money, coins.tail )
1 + countChange( money, coins.tail )
countChange( diff, coins ) + countChange( money, coins.tail )
}
}
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJcHJpbnRsbihjb3VudENoYW5nZSgzMDAsTGlzdCg1MDAsNSw1MCwxMDAsMjAsMjAwLDEwKSkpCgkKCWRlZiBjb3VudENoYW5nZShtb25leTogSW50LCBjb2luczogTGlzdFtJbnRdKTogSW50ID0gCiAgewogICAgaWYoIGNvaW5zLmlzRW1wdHkgKQogICAgICAwCiAgICBlbHNlCiAgICB7CiAgICAgIHZhbCBkaWZmID0gbW9uZXkgLSBjb2lucy5oZWFkCiAgICAgIGlmKCBkaWZmIDwgMCApCiAgICAgICAgY291bnRDaGFuZ2UoIG1vbmV5LCBjb2lucy50YWlsICkKICAgICAgZWxzZSBpZiggZGlmZiA9PSAwICkKICAgICAgICAxICsgY291bnRDaGFuZ2UoIG1vbmV5LCBjb2lucy50YWlsICkKICAgICAgZWxzZQogICAgICAgIGNvdW50Q2hhbmdlKCBkaWZmLCBjb2lucyApICsgY291bnRDaGFuZ2UoIG1vbmV5LCBjb2lucy50YWlsICkKICAgICAgfQogIH0KfQ==