C program to find fibonacci series upto n terms

Previous Program Next Program

Write a C program to print Fibonacci series up to n terms using loop. How to generate Fibonacci series up to n terms using loops in C programming. Logic to print Fibonacci series in a given range in C program.

Example

Input

Input number of terms: 10

Output

Fibonacci series: 
0, 1, 1, 2, 3, 5, 8, 13, 21, 34
Fibonacci series in C

Required knowledge

Basic C programming, While loop

What is Fibonacci series?

Fibonacci series is a series of numbers where the current number is the sum of previous two terms. For Example: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... , (n-1th + n-2th)

Logic to generate Fibonacci series

So far we know that we can get next Fibonacci term by adding previous two terms. Let us take this point to derive our logic. Below is the step by step descriptive logic to generate n Fibonacci terms.

  1. Read number of Fibonacci terms from user. Store it in some variable say terms.
  2. Initialize three variable, I call it as Fibonacci magic initialization. a=0, b=1 and c=0. Here c is the current term, b is the n-1th term and a is n-2th term.
  3. Run a loop from 1 to term, incrementing loop counter by 1. The loop structure should look like for(i=1; i<=term; i++). It will iterate through n terms
  4. Inside the loop I will make three magic assignments of Fibonacci series. First a = b assigning the n-1th value to n-2. Second b = c assigning current term to n-1 term. Last c = a + b add the previous two terms to get the new term.
  5. Print the value of c to print the current Fibonacci term.

Read more interesting facts about Fibonacci series.

Program to print Fibonacci series up to n terms

/**
 * C program to print Fibonacci series up to n terms
 */

#include <stdio.h>

int main()
{
    int a, b, c, i, terms;

    /*
     * Read a number from user
     */
    printf("Enter number of terms: ");
    scanf("%d", &terms);

    // Fibonacci magic initialization
    a = 0;
    b = 1;
    c = 0;

    printf("Fibonacci terms: \n");

    // Iterate through n terms
    for(i=1; i<=terms; i++)
    {
        printf("%d, ", c);

        a = b; // Copy n-1 to n-2
        b = c; // Copy current to n-1
        c = a + b; // New term
    }

    return 0;
} 
Output
Enter number of terms: 10
Fibonacci terms: 
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 

Before you move on to next exercise or program. Let me show one more example related to Fibonacci series. Let us code the solution to print Fibonacci series between a given range. Below is the program to print Fibonacci series between given range.

Program to print Fibonacci series in given range

/**
 * C program to print Fibonacci series in given range
 */

#include <stdio.h>

int main()
{
    int a, b, c, start, end;

    /*
     * Read a number from user
     */
    printf("Enter starting term: ");
    scanf("%d", &start);
    printf("Enter end term: ");
    scanf("%d", &end);

    // Fibonacci magic initialization
    a = 0;
    b = 1;
    c = 0;

    printf("Fibonacci terms: \n");

    // Iterate through terms
    while(c <= end)
    {

        // If current term is greater than start term
        if(c >= start) 
        {
            printf("%d, ", c);
        }

        a = b; // Copy n-1 to n-2
        b = c; // Copy current to n-1
        c = a + b; // New term
    }

    return 0;
} 
Output
Enter starting term: 4
Enter end term: 30
Fibonacci terms:
5, 8, 13, 21,

Happy coding ;)

Recommended posts

Previous Program Next Program

Labels: , , ,