Genera numeri di Fibonacci in C++

Jinku Hu 12 ottobre 2023
  1. C++ Usa il metodo iterativo per stampare i primi n elementi nella sequenza di Fibonacci
  2. C++ Usa il metodo iterativo per stampare l’elemento n -Th nella sequenza di Fibonacci
Genera numeri di Fibonacci in C++

Questo articolo mostrerà diversi metodi su come generare numeri di Fibonacci in C++.

C++ Usa il metodo iterativo per stampare i primi n elementi nella sequenza di Fibonacci

I numeri di Fibonacci sono comunemente noti in matematica come una sequenza di numeri in cui ogni elemento è la somma dei due precedenti, a partire da 0 e 1. In questo codice di esempio, prendiamo l’input dell’utente come intero n e generiamo i primi n numeri nella sequenza di Fibonacci. La soluzione è semplicemente iterativa, in cui inizializziamo i valori iniziali e ripetiamo n-3 volte per sommare i valori precedenti. Ad ogni iterazione, la somma viene stampata nel flusso cout ei valori memorizzati vengono spostati di una finestra numerica. Notare che è implementata la condizione if, che controlla il numero intero di input - 0 e stampa il valore corrispondente. La prima istruzione cout gestisce il caso in cui n è uguale a 2, poiché la condizione del cicli for restituisce false e non procede.

#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;
}

Produzione:

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

C++ Usa il metodo iterativo per stampare l’elemento n -Th nella sequenza di Fibonacci

In alternativa, possiamo implementare una funzione che restituisca il numero n esimo nella sequenza di Fibonacci. Si noti che memorizziamo l’input dell’utente in unsigned long long perché vogliamo essere in grado di produrre i numeri più grandi che possono essere memorizzati dai tipi C++ incorporati. La funzione inizia con l’istruzione if-else per verificare i primi tre casi e restituire valori hard-coded. D’altra parte, se n è maggiore di 3, procediamo al blocco del bucle e iteriamo fino a ottenere il n esimo numero nella sequenza.

#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;
}

Produzione:

Enter the n-th number in Fibonacci series: 10
34
Autore: 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

Articolo correlato - C++ Math