How to Generate Fibonacci Numbers in C++

Jinku Hu Feb 02, 2024
  1. C++ Use Iterative Method to Print the First n Items in Fibonacci Sequence
  2. C++ Use Iterative Method to Print the n-Th Item in Fibonacci Sequence
How to Generate Fibonacci Numbers in C++

This article will demonstrate multiple methods of how to generate Fibonacci numbers in C++.

C++ Use Iterative Method to Print the First n Items in Fibonacci Sequence

Fibonacci numbers are commonly known in math as a sequence of numbers where each item is the sum of the two preceding ones, starting from 0 and 1. In this example code, we take the user’s input as integer n and generate the first n numbers in the Fibonacci sequence. The solution is plain iterative, where we initialize the starting values and iterate n-3 times to sum the previous values. Each iteration, the sum is printed to cout stream, and stored values are shifted by one number window. Note that the if condition is implemented, which checks for the input integer - 0 and prints the corresponding value. The first cout statement handles the case when n equals 2, as the for loop condition evaluates to false and does not proceed.

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

Output:

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

C++ Use Iterative Method to Print the n-Th Item in Fibonacci Sequence

Alternatively, we can implement a function that returns the n-th number in the Fibonacci sequence. Note that we store user input in unsigned long long because we want to be able to output the largest numbers that can be stored by built-in C++ types. The function starts with the if-else statement to check for the first three cases and return hard-coded values. On the other hand, if n is larger than 3, we proceed to loop block and iterate until we get the n-th number in the sequence.

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

Output:

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

Related Article - C++ Math