Documente Academic
Documente Profesional
Documente Cultură
Observaţi modul în care calculăm suma la fiecare pas. De câte ori se trece la componenta următoare
(k+1), la s se adună x[k], de câte ori se face pasul înapoi (se trece la componenta k-1), din s se
scade x[k].
#include <iostream>
using namespace std;
int x[100], n, i, s;
void back(int k)
{
if(s == n)
{
for(i = 1; i <= k - 1; i ++)
cout << x[i] << " ";
cout << "\n";
} else
{
x[k] = 0;
while(x[k] + s < n)
{
x[k] ++;
s = s + x[k];
back(k + 1);
s = s - x[k];
}
}
}
int main()
{
cin >> n;
back(1);
return 0;
}
int main()
{
f >> n;
back(1);
return 0;
}