Monday, September 23, 2024
Google search engine
HomeData Modelling & AIPrint Fibonacci Series in reverse order using Recursion

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

 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments