Scrieţi un program C/C++, care citeşte de la tastatură un număr natural n (n≤1000) şi
afişează pe ecran, separaţi prin câte un spaţiu, primii n termeni ai şirului:
1, 2,1, 3,2,1, 4,3,2,1, ...
construit astfel: prima grupă este formată din numărul 1, a doua grupă este formată din
numerele 2 şi 1, etc. Grupa a k-a, este formată din numerele k, k-1,..., 1.
Exemplu: pentru n=8 se vor afişa valorile 1 2 1 3 2 1 4 3.

Răspuns :

Răspuns:

n=8

1 2 1 3 2 1 4 3

n=17

1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5

n=21

1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1

Explicație:

// Online C++ compiler to run C++ program online

#include <iostream>

using namespace std;

int main() {

 int n, nr, i, k;

 

 cout<<"n=";

 cin>> n;

 nr = 0; //contorizam nr de elemente ale sirului pe care le afisam

 k = 1; // grupul k pe care il afisam

 

 while(nr < n) // inca nu am afisat cele n elemente

 {

    // afisam elementele grupului k, de la k  la 1. chiar daca nu am terminat de afisat elementele din grupul k, ne oprim daca am ajuns sa afisam cele n elemente (conditia pentru acest lucru este:&& nr != n).

    for(i=k; i>=1 && nr != n; i--)

    {

        cout << i<<" ";

        nr ++; // contorizam elementul afisat.

    }

   

    k++; // contorizam grupul afisat

 }

 

 return 0;

}