今天有一个面试问题,我无法解决 寻找你的建议
需要编写一个计算所有这些独特组合的函数
答案 0 :(得分:2)
int a[100]; a[0] = 0; //to store composition
void rec(int x, int p) {
for ( int i = a[p-1]+1; i <= x; i++ )
if (x - i > i ) {
a[p] = i;
rec(x - i, p+1);
} else {
a[p] = x;
//print if needed
for ( int j = 1; j <= p; j++ )
cout << a[j] << ' ';
cout << endl;
return;
}
}
而不是打电话
rec(n, 1);