Informatică, întrebare adresată de deea9859, 8 ani în urmă

ofer coroană Urgent
c++​

Anexe:

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

#include <iostream>

using std::cout, std::cin, std::endl;

// funcția returnează câți termeni impari sunt în primii N termeni ai șirului lui Fibonacci

static int contorNrImpare(int N) {

 int primulTermen = 0, alDoileaTermen = 1, termenCurent = 0, contorNr = 0;

 while (termenCurent <= N) {

   primulTermen = alDoileaTermen;

   alDoileaTermen = termenCurent;

   termenCurent = primulTermen + alDoileaTermen;

   // dacă termenCurent este impar incrementăm contorul

   if (termenCurent % 2 != 0) ++contorNr;

 }

 // la final returnăm numărul de nr. impare din șir

 return contorNr;

}

int main() {

 int N;

 cout << "Introdu N (de ex 100) >> ";

 // citim N-ul

 cin >> N;

 // și afișăm numărul de termeni impari din șir de ex. pentru N = 100 șirul este 0 1 1 2 3 5 8 13 21 34 55 89 în care se află 8 termeni impari

 cout << "In primii " << N << " termeni ai sirului sunt " << contorNrImpare(N) << " termeni impari!" << endl;

 return 0;

}

Alte întrebări interesante