征求排列组合算法,该怎么处理

征求排列组合算法
有N个任意数字   (1,23,21,87,...)
排列出所有N个数字相加的可能,
比如生成如下格式:
1+23
1+23+21
1+23+21+87
1+21+87
1+87
23+21
23+21+87
21+87
.....


------解决方案--------------------
dim a(n-1) as integer,b(n-1) as integer
dim i as integer,j as integer
dim sum as long
先用n个数字填充a,b
然后
for i=0 to n
sum=0
forj=i+1 to n
sum=sum + a(i)+b(j)
debug.print sum
next
next


------解决方案--------------------
mark
------解决方案--------------------
#include <iostream>

using namespace std;

int main()
{
int matrix[10]={0,1,2,3,4,5,6,7,8,9};
int m,n;

for(m=0;m <10;m++)
{
for(n=m;n <10;n++)
{
for(int i=0;i <m;i++)
{
cout < <i;
}
cout < <n < <endl;
}
}
return 0;
}
------解决方案--------------------
关注一下,看到过类似问题,不过是在数据库方面的。