Générer des nombres de Fibonacci en C++

Jinku Hu 12 octobre 2023
  1. C++ Utiliser la méthode itérative pour imprimer les premiers n éléments de la séquence de Fibonacci
  2. C++ Utiliser la méthode itérative pour imprimer le n-ème élément dans la séquence de Fibonacci
Générer des nombres de Fibonacci en C++

Cet article présente plusieurs méthodes de génération de nombres de Fibonacci en C++.

C++ Utiliser la méthode itérative pour imprimer les premiers n éléments de la séquence de Fibonacci

Les nombres de Fibonacci sont communément connus en mathématiques comme une séquence de nombres où chaque élément est la somme des deux précédents, en commençant par 0 et 1. Dans cet exemple de code, nous prenons l’entrée de l’utilisateur comme un entier n et générons les premiers n nombres de la séquence de Fibonacci. La solution est itérative simple, où nous initialisons les valeurs de départ et itérons n-3 fois pour additionner les valeurs précédentes. A chaque itération, la somme est imprimée dans le flux cout, et les valeurs stockées sont décalées d’une fenêtre numérique. Notez que la condition if est implémentée, qui vérifie l’entier d’entrée - 0 et imprime la valeur correspondante. La première instruction cout gère le cas où n est égal à 2, car la condition de la boucle for est évaluée à faux et ne continue pas.

#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

void generateFibonacci(unsigned long long n) {
  if (n == 1) {
    cout << 0 << endl;
    return;
  }

  unsigned long long a = 0;
  unsigned long long b = 1;
  unsigned long long c;

  cout << a << " " << b;

  for (unsigned long long i = 3; i <= n; i++) {
    c = a + b;
    cout << " " << c;
    a = b;
    b = c;
  }
}

int main() {
  unsigned long long num;

  cout << "Enter the number of items to generate Fibonacci series: ";
  cin >> num;

  generateFibonacci(num);

  return EXIT_SUCCESS;
}

Production:

Enter the number of items to generate Fibonacci series: 10
0 1 1 2 3 5 8 13 21 34

C++ Utiliser la méthode itérative pour imprimer le n-ème élément dans la séquence de Fibonacci

Alternativement, nous pouvons implémenter une fonction qui renvoie le n-ème nombre dans la séquence de Fibonacci. Notez que nous stockons les entrées utilisateur dans unsigned long long car nous voulons pouvoir sortir les plus grands nombres qui peuvent être stockés par les types C++ intégrés. La fonction commence par l’instruction if-else pour vérifier les trois premiers cas et renvoyer des valeurs codées en dur. D’un autre côté, si n est plus grand que 3, nous procédons au bloc en boucle et itérons jusqu’à ce que nous obtenions le n-ème nombre dans la séquence.

#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

unsigned long long generateFibonacci(unsigned long long n) {
  if (n == 1) {
    return 0;
  } else if (n == 2 || n == 3) {
    return 1;
  }

  unsigned long long a = 1;
  unsigned long long b = 1;
  unsigned long long c;

  for (unsigned long long i = 3; i < n; i++) {
    c = a + b;
    a = b;
    b = c;
  }

  return c;
}

int main() {
  unsigned long long num;

  cout << "Enter the n-th number in Fibonacci series: ";
  cin >> num;

  cout << generateFibonacci(num);
  cout << endl;

  return EXIT_SUCCESS;
}

Production:

Enter the n-th number in Fibonacci series: 10
34
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - C++ Math