文章目錄

对于一个正整数n而言,它的一个分割(Partition),就是把n写成若干个正整数的和,但不计较书写的顺序。编写一个程序,输入n,把n的所有分割显示出来。
说明: 如果n=7, 那么有如下的分割.

7

6 1

5 2

5 1 1

4 3

4 2 1

4 1 1 1

3 3 1

3 2 2

3 2 1 1

3 1 1 1 1

2 2 2 1

2 2 1 1 1

2 1 1 1 1 1

1 1 1 1 1 1 1

一共有15个,仔细观察在各个输出中前后两者的差异,并且自己做一做其他的结果(比如n=5时有7个,n = 6时有11个等),就不难写出程序了。

整数的所有不同分割数目递归解稍加改变,就可以得到一个递归解,解答见integer_partition_method.py

打赏作者

文章目錄