Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Print Fibonacci Series in reverse order using Recursion

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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)

 


My Personal Notes arrow_drop_up
Last Updated : 01 Dec, 2021
Like Article
Save Article
Similar Reads
Related Tutorials