You are here

Fibonacci series in C

Fibonacci series in C using a loop and recursion. You can print as many terms of the series as required. The numbers of the sequence are known as Fibonacci numbers.

The first few numbers of the series are 0, 1, 1, 2, 3, 5, 8, ..., except for the first two terms of the sequence, every other is the sum of the previous two, for example, 8 = 3 + 5 (sum of 3 and 5).

Fibonacci series program in C

#include <stdio.h>

int main()
{
  int n, first = 0, second = 1, next, c;

  printf("Enter the number of terms\n");
  scanf("%d", &n);

  printf("First %d terms of Fibonacci series are:\n", n);

  for (c = 0; c < n; c++)
  {
    if (c <= 1)
      next = c;
    else
    {
      next = first + second;
      first = second;
      second = next;
    }
    printf("%d\n", next);
  }

  return 0;
}

Output of program:
Fibonacci series C program output

Fibonacci series C program using recursion

#include<stdio.h>

int f(int);

int main()
{
  int n, i = 0, c;

  scanf("%d", &n);

  printf("Fibonacci series terms are:\n");

  for (c = 1; c <= n; c++)
  {
    printf("%d\n", f(i));
    i++;
  }

  return 0;
}

int f(int n)
{
  if (n == 0 || n == 1)
    return n;
  else
    return (f(n-1) + f(n-2));
}

The recursive method is less efficient as it involves repeated function calls that may lead to stack overflow while calculating larger terms of the series.

Using Memoization (storing Fibonacci numbers that are calculated in an array and using it for lookup), we can reduce the running time of the recursive algorithm. The series has many applications in Mathematics and Computer Science.