我试图计算有多少种方法可以对整数进行分区。到目前为止,我想出了以下功能:
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)
是结束。
也许您可以发现其中的逻辑错误?