GeeksforGeeks App
Open App
Browser
Continue

# Print Fibonacci Series in reverse order using Recursion

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 ``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

 ``

Output

`34 21 13 8 5 3 2 1 1 0 `

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

My Personal Notes arrow_drop_up