我正在寻找数字的所有可能组合以及它们在固定大小的数组中的排列。例如,我的期望输出总数为5
5 0 0 0
0 5 0 0
0 0 5 0
0 0 0 5
4 1 0 0
1 4 0 0
1 0 4 0
1 0 0 4
0 1 4 0
以此类推...这可能吗?
答案 0 :(得分:0)
使用递归:
void find(int remain, int depth, vector<int> v) {
if (depth == 4) {
if (remain == 0){
for (int i = 0 ;i < 4; i++) {
cout << v[i];
}
cout<<endl;
}
return;
}
for (int i = 0; i <= remain; i++) {
v.push_back(i);
find(remain-i, depth+1, v);
v.pop_back();
}
}