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 Codeint main(){ int N = 10; fibo(N, 0, 1); return 0;} |
Java
// Java program for the above approachimport 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 Codepublic 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 Codeif __name__ == "__main__": N = 10 fibo(N, 0, 1) # This code is contributed by Samim Hossain Mondal. |
C#
// C# program for the above approachusing 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 Codepublic 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 Codelet N = 10;fibo(N, 0, 1);// This code is contributed by Samim Hossain Mondal.</script> |
34 21 13 8 5 3 2 1 1 0
Time Complexity: O(N)
Auxiliary Space: O(N)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
