私はScalaの初心者であり、プログラミングの初心者です。データサイエンスに移行しようとしていて、自分で学習しています。これが非常に些細な質問であれば、お詫び申し上げます。誰かが主な機能について何が間違っているか教えてください。私はcountChange関数で引数を渡そうとしていますが、コードは何も印刷しません。私はそれを見て理解しようとしましたが、私は完全に失われており、どんな助けでも大いに感謝されるでしょう!ありがとうございました!Scalaのカウント変更 - コードが印刷されない
object main {
def countChange(money: Int, change: List[Int]): Int = {
def totalWays(sum: Int, denomination: List[Int]): Int = {
if (sum < 0) 0
else
if (sum == 0) 1
else
if (denomination.isEmpty && sum >= 0) 0
else
countChange(sum, denomination.tail) + countChange(sum-denomination.head,denomination)
}
countChange(money, change.sortWith(_.compareTo(_) < 0))
}
def main(args: Array[String]) {
val l = List(1,2)
println(countChange(0,l))
}
}
それは、コンパイルしていますか?この部分は正しい 'change.sortWith(_。compareTo(_)<0)'のようではありません。 – pedrofurla
@pedrofurla:いいえ、それはありません!ああ!それについて何が間違っているのか教えていただけますか?実際には、私は次のリンクからこのコードを参照しました:http://stackoverflow.com/questions/12629721/coin-change-algorithm-in-scala-using-recursion – Gingerbread
私はIDE(IntelliJ)にコードを接続しているようですコンパイルするには2つのことに気付きました:1) 'totalWays()'関数は決して呼び出されず、2) 'countChange()'関数は無限に再帰的です。救済措置はない。 – jwvh