Print even and odd numbers in a given range using recursion
Given two integers L and R, the task is to print all the even and odd numbers from L to R using recursion.
Examples:
Input: L = 1, R = 10
Output:
Even numbers: 2 4 6 8 10
Odd numbers: 1 3 5 7 9Input: L = 10, R = 25
Output:
Even numbers:10 12 14 16 18 20 22 24
Odd numbers:11 13 15 17 19 21 23 25
Approach: Follow the steps below to solve the problem using Recursion:
- Traverse the range [R, L].
- Print the odd elements from the range using recursion using the following recurrence relation:
Odd(L, R) = R % 2 == 1? Odd(L, R – 2) : Odd(L, R – 1)
- Print the even elements from the range using recursion using the following recurrence relation:
Even(L, R) = R % 2 == 0 ? Even(L, R – 2) : Even(L, R – 1)
Below is the implementation of the above approach:
C++
// C++ program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to print all the // even numbers from L to R void Even( int L, int R) { // Base case if (R < L) { return ; } // Recurrence relation R % 2 == 0 ? Even(L, R - 2) : Even(L, R - 1); // Check if R is even if (R % 2 == 0) { cout << R << " " ; } } // Function to print all the // odd numbers from L to R void Odd( int L, int R) { // Base case if (R < L) { return ; } // Recurrence relation R % 2 == 1 ? Odd(L, R - 2) : Odd(L, R - 1); // Check if R is even if (R % 2 == 1) { cout << R << " " ; } } // Driver Code int main() { int L = 10, R = 25; cout << "Even numbers:" ; // Print all the // even numbers Even(L, R); cout << endl; // Print all the // odd numbers cout << "Odd numbers:" ; Odd(L, R); } |
Java
// Java program to implement // the above approach import java.util.*; class GFG{ // Function to print // all the even numbers // from L to R static void Even( int L, int R) { // Base case if (R < L) { return ; } // Recurrence relation if (R % 2 == 0 ) Even(L, R - 2 ); else Even(L, R - 1 ); // Check if R is even if (R % 2 == 0 ) { System.out.print(R + " " ); } } // Function to print // all the odd numbers // from L to R static void Odd( int L, int R) { // Base case if (R < L) { return ; } // Recurrence relation if (R % 2 == 1 ) Odd(L, R - 2 ); else Odd(L, R - 1 ); // Check if R is even if (R % 2 == 1 ) { System.out.print(R + " " ); } } // Driver Code public static void main(String[] args) { int L = 10 , R = 25 ; System.out.print( "Even numbers:" ); // Print all the // even numbers Even(L, R); System.out.println(); // Print all the // odd numbers System.out.print( "Odd numbers:" ); Odd(L, R); } } // This code is contributed by Rajput-Ji |
Python3
# Python3 program to implement # the above approach # Function to print all the # even numbers from L to R def Even(L, R): # Base case if (R < L): return # Recurrence relation if (R % 2 = = 0 ): Even(L, R - 2 ) else : Even(L, R - 1 ) # Check if R is even if (R % 2 = = 0 ): print (R, end = " " ) # Function to print all the # odd numbers from L to R def Odd(L, R): # Base case if (R < L): return # Recurrence relation if (R % 2 = = 1 ): Odd(L, R - 2 ) else : Odd(L, R - 1 ) # Check if R is even if (R % 2 = = 1 ): print (R, end = " " ) # Driver Code if __name__ = = '__main__' : L = 10 R = 25 print ( "Even numbers:" ) # Print all the # even numbers Even(L, R) print () # Print all the # odd numbers print ( "Odd numbers:" ) Odd(L, R) # This code is contributed by Amit Katiyar |
C#
// C# program to implement // the above approach using System; class GFG{ // Function to print // all the even numbers // from L to R static void Even( int L, int R) { // Base case if (R < L) { return ; } // Recurrence relation if (R % 2 == 0 ) Even(L, R - 2); else Even(L, R - 1); // Check if R is even if (R % 2 == 0) { Console.Write(R + " " ); } } // Function to print // all the odd numbers // from L to R static void Odd( int L, int R) { // Base case if (R < L) { return ; } // Recurrence relation if (R % 2 == 1 ) Odd(L, R - 2); else Odd(L, R - 1); // Check if R is even if (R % 2 == 1) { Console.Write(R + " " ); } } // Driver Code public static void Main(String[] args) { int L = 10, R = 25; Console.Write( "Even numbers:" ); // Print all the // even numbers Even(L, R); Console.WriteLine(); // Print all the // odd numbers Console.Write( "Odd numbers:" ); Odd(L, R); } } // This code is contributed by 29AjayKumar |
Javascript
<script> // Java script program to implement // the above approach // Function to print // all the even numbers // from L to R function Even(L, R) { // Base case if (R < L) { return ; } // Recurrence relation if (R % 2 == 0 ) { Even(L, R - 2); } else { Even(L, R - 1); } // Check if R is even if (R % 2 == 0) { document.write(R + " " ); } } // Function to print // all the odd numbers // from L to R function Odd(L, R) { // Base case if (R < L) { return ; } // Recurrence relation if (R % 2 == 1 ) { Odd(L, R - 2); } else { Odd(L, R - 1); } // Check if R is even if (R % 2 == 1) { document.write(R + " " ); } } // Driver Code let L = 10; let R = 25; document.write( "Even numbers:" ); // Print all the // even numbers Even(L, R); document.write( "<br>" ); // Print all the // odd numbers document.write( "Odd numbers:" ); Odd(L, R); // This code is contributed by sravan kumar G </script> |
Output:
Even numbers:10 12 14 16 18 20 22 24 Odd numbers:11 13 15 17 19 21 23 25
Time Complexity: O(R-L)
Auxiliary Space: O(R-L) for recursive stack space
Please Login to comment...