Răspuns:
#include <iostream>
using namespace std;
int n, num, g, s;
int main()
{
cout << "n= "; cin >> n;
cout << "sirul creat cu n termeni: " << endl;
g=1; s=0;
while (s+g<n)
{
for (num=g; num>0; --num)
cout << num << " ";
s=s+g; ++g;
}
int dif=n-s;
num=g;
for (int i=1; i<=dif; ++i)
cout << num-- << " ";
return 0;
}
Explicație:
conform enunţului şirul e foemat din grupuri:
(1)(21)(321)(4321)(54321)...
variabila n reprezintă nr. de termeni ai şirului, dacă n=10, atunci avem toţi termenii din patru grupe (1+2+3+4=10, în primul grup este 1 număr, în al doilea 2 numere, în al treilea 3 numere şi în al patrulea 4 numere)
Folosesc variabila s care face suma sirului Gauss şi variabila g ce reprezintă grupul
variabila num e de lucru. În caz că s+g e mai mare ca n atunci folosesc variabila dif pentru a vedea câţi termeni din următorul grup au rămas de afişat.