Se citesc de la tastatură un număr natural n şi două valori reale x şi y. Să se genereze recursiv într-un vector primii n termeni ai şirului: 1,1,2,3,3,4,5,5, …. Să se afişeze câți termeni ai şirului sunt mai mari decât x şi mai mici decât y şi care sunt aceşti termeni. 5

#include <iostream>

int main() {

    int n;

    double x, y;

    std::cin >> n >> x >> y;

    double v[50];

    int count = 0;

    int i = 0, j = 0;

    while (count < n) {

        if (i == j) {

            v[count] = i;

            count++;

            j++;

        } else if (i < j) {

            v[count] = i;

            count++;

            i++;

        } else {

            v[count] = j;

            count++;

            j++;

        }

    }

    int num = 0;

    for (int k = 0; k < n; k++) {

        if (v[k] > x && v[k] < y) {

            num++;

            std::cout << v[k] << ” „;

        }

    }

    std::cout << „\nNumber of terms greater than ” << x << ” and less than ” << y << ” is ” << num << std::endl;

    return 0;

}

Explicaţie:

În primul rând se citeşte de la tastatură numărul de termeni din şir (n) şi valorile x şi y. Se iniţializează un vector v de tip double cu dimensiunea maximă 50 şi un contor count pentru a număra numărul de termeni care respectă condiţiile date.

Se parcurge şirul cu ajutorul unei structuri repetitve while. Pe baza relaţiei dintre termenii consecutivi, dacă primul termen este egal cu al doilea, se adaugă primul termen în vector, altfel se adaugă termenul cel mai mic şi se incrementează corespunzător variabila i sau j.

În continuare, se parcurge vectorul şi se verifică dacă fiecare termen este mai mare decât x şi mai mic decât y. Dacă se îndeplinesc aceste condiţii, se afişează termenul şi se incrementează variabila num pentru a număra numărul de termeni care respectă condiţiile.

La final, se afişează numărul de termeni găsiţi care sunt mai mari decât x şi mai mici decât y.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *