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ăspunsuri la întrebare
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;
}