Scrie un program C plus plus care genereaza primii n termeni ai sirului 1,1,2,2,2,3,3,3,3,4,4,4,4,4,…

#include <iostream>

using namespace std;

void genereazaSir(int n) {
    int termen = 1;
    int count = 0;

    while (count < n) {
        for (int i = 0; i <=termen; ++i) {
            if (count >= n) break;
            cout << termen << " ";
            ++count;
        }
        ++termen;
    }
    cout << endl;
}

int main() {
    int n;
    cout << "Introduceti numarul de termeni n: ";
    cin >> n;

    if (n <= 0) {
        cout << "n trebuie sa fie un numar pozitiv." << endl;
    } else {
        cout << "Primii " << n << " termeni ai sirului sunt: ";
        genereazaSir(n);
    }

    return 0;
}

Explicație:

  1. Funcția genereazaSir:
    • Primește un parametru n care indică numărul de termeni ai șirului ce trebuie generați.
    • Utilizează variabila termen pentru a ține evidența termenului curent al șirului.
    • Utilizează variabila count pentru a ține evidența numărului de termeni generați până în prezent.
    • Folosește o buclă while pentru a continua generarea termenilor până când numărul de termeni generați (count) este egal cu n.
    • În interiorul buclei while, utilizează o buclă for pentru a adăuga de mai multe ori termenul curent în șir (numărul de adăugări fiind egal cu valoarea termenului).
    • După adăugarea termenului curent de termen ori, se incrementează termen pentru a trece la următorul termen al șirului.
  2. Funcția main:
    • Citește valoarea lui n de la utilizator.
    • Verifică dacă n este un număr pozitiv.
    • Apelează funcția genereazaSir pentru a genera și afișa primii n termeni ai șirului.