C/C++ Program for Fibonacci Series Using Recursion

Series 0, 1, 1, 2, 3, 5, 8, 13, 21 . . . . . . . is a Fibonacci series. In Fibonacci series, each term is the sum of the two preceding terms.

 

The C and C++ program for Fibonacci series using recursion is given below.
 

C Program

#include<stdio.h>
 
int fibonacci(int n)
{
    if((n==1)||(n==0))
    {
        return(n);
    }
    else
    {
        return(fibonacci(n-1)+fibonacci(n-2));
    }
}
 
int main()
{
    int n,i=0;
    printf("Input the number of terms for Fibonacci Series:");
    scanf("%d",&n);
    printf("\nFibonnaci Series is as follows\n");
    while(i<n)
    {
        printf("%d ",fibonacci(i));
        i++;
    }
 
    return 0;
}

C++ Program

#include<iostream>

using namespace std;

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

int main()
{
    int n,i=0;
    cout<<"Input the number of terms for Fibonacci Series:";
    cin>>n;
    cout<<"\nFibonacci Series is as follows\n";

    while(i<n)
    {
        cout<<" "<<fibonacci(i);
        i++;
    }

    return 0;
}

 

Output:

C/C++ Program for Fibonacci Series Using Recursion

18 thoughts on “C/C++ Program for Fibonacci Series Using Recursion”

  1. i guess 0 should not have been a part of the series….
    so in the function u should have used return fibbonacci(n)+fibbonacci(n-1)
    please correct me if i am wrong

  2. The while statement needs to be, while(i <= n)(line 24), and (int i = 0) needs to be initialized at 1(line 19), not at 0. Changing this will result in the proper value for any fibonacci(n). As is right now, it is giving you the value at fibonacci(n-1), hence the reason fibonacci(8) yields a value of 13.

    1. #include

      using namespace std;

      int Fib(int n);

      int main() {
      int i;

      for(i=1;i<=20;i++) {
      cout << "Fib(" << i << ") = " << Fib(i) << endl;
      }

      return 0;
      }

      int Fib(int n) {
      int returnValue;

      // handle the base case first;
      if (n == 1 or n == 2) {
      returnValue = 1;
      } else {
      returnValue = Fib(n-1) + Fib(n-2);
      }
      return returnValue;
      }

        1. #include

          using namespace std;

          int Fib(int n);

          int main() {
          int i;

          for(i=1;i<=20;i++) {
          cout << "Fib(" << i << ") = " << Fib(i) << endl;
          }

          return 0;
          }

          int Fib(int n) {
          int returnValue;

          // handle the base case first;
          if (n == 1 or n == 2) {
          returnValue = 1;
          } else {
          returnValue = Fib(n-1) + Fib(n-2);
          }
          return returnValue;
          }

  3. i need to get the output as, if i enter 15 as input then i should get the answer as 0,1,1,2,3,5,8,13.so, where should i have to change the code?

  4. Not actual Recursion. Its while loop which does the required part and not the method. Good to move the logic inside the method

    void Recursion::FibonaciiSeries(int num)
    {
    static int print = 1;
    static int next = 2;

    if (num == 0)
    {
    return;
    }
    else
    {
    cout << print << " ";
    int temp = print;
    print = next;
    next = print + temp;
    FibonaciiSeries(num – 1);
    }
    }

Leave a Comment

Your email address will not be published. Required fields are marked *