整数を分割できる方法がいくつあるかを数えようとしています。これまでのところ、私は次の関数を思いついた:
def partition(num: Int): Int = {
if(num == 1) return 1
if(num <= 0) return 0
return partition(num-1) + partition(num-(num-1))
}
partition(6) //6 instead of 7
例えば:5 -> 4 + 1, 3 + 2, 2 + 2 + 1, 2 + 1 + 1 + 1, 1 + 1 + 1 + 1 + 1
num
終わりだと思うので、 1の場合は1を返しますpartition(1)
。
多分あなたはそれに論理エラーを見つけることができますか?