📅  最后修改于: 2022-03-11 14:47:16.833000             🧑  作者: Mango
#include
#include
#include
using namespace std;
void obradi(const vector& particija, int k) {
for (int i = 0; i < k; i++)
cout << particija[i] << " ";
cout << endl;
}
void obradiParticije(int n, int smax, vector& particija, int k) {
if (n <= 0)
obradi(particija, k);
else {
for (int s = 1; s <= min(n, smax); s++) {
particija[k] = s;
obradiParticije(n-s, s, particija, k+1);
}
}
void obradiParticije(int n) {
vector particija(n);
obradiParticije(n, n, particija, 0);
}
int main() {
int n;
cin >> n;
obradiParticije(n);