Open In App

Print Fibonacci Series in reverse order using Recursion

Improve
Improve
Like Article
Like
Save
Share
Report

Given an integer N, the task is to print the first N terms of the Fibonacci series in reverse order using Recursion.

Examples:

Input: N = 5
Output: 3 2 1 1 0
Explanation: First five terms are – 0 1 1 2 3. 

Input: N = 10
Output: 34 21 13 8 5 3 2 1 1 0

 

Approach: The idea is to use recursion in a way that keeps calling the same function again till N is greater than 0 and keeps on adding the terms and after that starts printing the terms. 

Follow the steps below to solve the problem:

  • Define a function fibo(int N, int a, int b) where
    • N is the number of terms and
    • a and b are the initial terms with values 0 and 1.
  • If N is greater than 0, then call the function again with values N-1, b, a+b.
  • After the function call, print a as the answer.

Below is the implementation of the above approach.

C++




// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to print the fibonacci
// series in reverse order.
void fibo(int n, int a, int b)
{
    if (n > 0) {
 
        // Function call
        fibo(n - 1, b, a + b);
 
        // Print the result
        cout << a << " ";
    }
}
 
// Driver Code
int main()
{
    int N = 10;
    fibo(N, 0, 1);
    return 0;
}


Java




// Java program for the above approach
import java.util.*;
public class GFG
{
// Function to print the fibonacci
// series in reverse order.
static void fibo(int n, int a, int b)
{
    if (n > 0) {
 
        // Function call
        fibo(n - 1, b, a + b);
 
        // Print the result
        System.out.print(a + " ");
    }
}
 
// Driver Code
public static void main(String args[])
{
    int N = 10;
    fibo(N, 0, 1);
}
}
// This code is contributed by Samim Hossain Mondal.


Python3




# Python program for the above approach
 
# Function to print the fibonacci
# series in reverse order.
def fibo(n, a, b):
 
    if (n > 0):
 
        # Function call
        fibo(n - 1, b, a + b)
 
        # Print the result
        print(a, end=" ")
 
 
# Driver Code
if __name__ == "__main__":
 
    N = 10
    fibo(N, 0, 1)
 
    # This code is contributed by Samim Hossain Mondal.


C#




// C# program for the above approach
using System;
class GFG
{
// Function to print the fibonacci
// series in reverse order.
static void fibo(int n, int a, int b)
{
    if (n > 0) {
 
        // Function call
        fibo(n - 1, b, a + b);
 
        // Print the result
        Console.Write(a + " ");
    }
}
 
// Driver Code
public static void Main()
{
    int N = 10;
    fibo(N, 0, 1);
}
}
// This code is contributed by Samim Hossain Mondal.


Javascript




<script>
// Javascript program for the above approach
 
// Function to print the fibonacci
// series in reverse order.
function fibo(n, a, b)
{
    if (n > 0) {
 
        // Function call
        fibo(n - 1, b, a + b);
 
        // Print the result
        document.write(a + " ");
    }
}
 
// Driver Code
let N = 10;
fibo(N, 0, 1);
 
// This code is contributed by Samim Hossain Mondal.
</script>


 
 

Output

34 21 13 8 5 3 2 1 1 0 

 

Time Complexity: O(N)
Auxiliary Space: O(N)

 



Last Updated : 01 Dec, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads