计算数字所有可能部分的程序

Program that counts all the possible PARTS of a number

好吧,我的一个朋友向我提出挑战,要求我完成这项工作,但我就是做不得太远....

他让我做的是制作一个程序来显示和计算输入数字的所有可能部分。

5 的示例:

1+1+1+1+1

2+1+1+1

3+1+1

4+1

5

3+2

2+2+1

我希望程序是用 C++ 或一些伪代码编写的,我都不介意。

期待大家的到来!

编辑:不重复。我要求用 C++ 解决方案;另一个在 Python。此外,我的问题要求添加 return 初始数字的所有可能部分。

对于非零分区(想象一下数组 1 中的布尔分隔符)

2 ** (n-1) 

此列表将包括 2 + 3 和 3 + 2。

如果允许 0 则无穷大。