Se citesc două numere de la tastatură, a şi b. Afişaţi numărul de termeni ai şirului lui Fibonacci din intervalul [a,b]. Scrieţi câte o variantă de program pentru fiecare structură repetitivă implementată în limbajul C++. Precizaţi expresiile şi instrucțiunile folosite pentru cele trei acţiuni ale procesului de control. 5

  1. Varianta cu structura repetitivă while:

#include <iostream>

using namespace std;

int main() {

    int a, b;

    cout << „Introduceti doua numere intregi a si b: „;

    cin >> a >> b;

    int f1 = 1, f2 = 1, f3 = 2, nr = 0;

    while (f1 <= b) {

        if (f1 >= a) {

            nr++;

        }

        f1 = f2;

        f2 = f3;

        f3 = f1 + f2;

    }

    cout << „Numarul de termeni din sirul lui Fibonacci din intervalul [” << a << „, ” << b << „] este: ” << nr << endl;

    return 0;

}

Explicație:

  • Citim numerele a și b.
  • Inițializăm primele 3 numere din șirul lui Fibonacci: f1, f2 și f3.
  • Folosim o buclă while pentru a genera restul șirului. Bucla se va opri când ultimul termen generat este mai mare decât b.
  • Dacă termenul curent f1 este în intervalul [a, b], creștem numărul de termeni nr.
  • Actualizăm cele 3 numere din șirul lui Fibonacci, trecând la următoarele 3 numere.
  • Afișăm rezultatul.
  • Varianta cu structura repetitivă do-while:

#include <iostream>

using namespace std;

int main() {

    int a, b;

    cout << „Introduceti doua numere intregi a si b: „;

    cin >> a >> b;

    int f1 = 1, f2 = 1, f3 = 2, nr = 0;

    do {

        if (f1 >= a && f1 <= b) {

            nr++;

        }

        f1 = f2;

        f2 = f3;

        f3 = f1 + f2;

    } while (f1 <= b);

    cout << „Numarul de termeni din sirul lui Fibonacci din intervalul [” << a << „, ” << b << „] este: ” << nr << endl;

    return 0;

}

Explicație:

  • Citim numerele a și b.
  • Inițializăm primele 3 numere din șirul lui Fibonacci: f1, f2 și f3.
  • Folosim o buclă do-while pentru a genera restul șirului. Bucla se va opri când ultimul termen generat este mai mare decât b.
  • Dacă termenul curent f1 este în intervalul [a, b], creștem numărul de termeni nr.
  • Actualizăm cele 3 numere din șirul lui Fibonacci, trecând la următoarele 3 numere.
  • Afișăm rezultatul.
  • Varianta cu structura for
  •  

 #include <iostream>

using namespace std;

int main() {

    int a, b;

    int f1 = 0, f2 = 1, f3;

    int count = 0;

    cout << „Introduceti a si b: „;

    cin >> a >> b;

    for (int i = 1; i <= b; i++) {

        f3 = f1 + f2;

        f1 = f2;

        f2 = f3;

        if (f2 >= a && f2 <= b) {

            count++;

        }

    }

    cout << „Numarul de termeni ai sirului Fibonacci in intervalul [” << a << „, ” << b << „] este: ” << count << endl;

    return 0;

}

În această variantă, folosim o buclă for pentru a genera termenii șirului Fibonacci de la 1 până la b. În fiecare iterație, adunăm ultimele două numere ale șirului și verificăm dacă numărul obținut se află în intervalul [a,b]. Dacă da, incrementăm contorul. La final, afișăm numărul de termeni găsiți.

Similar Posts

Lasă un răspuns

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