We have discussed iterative pattern printing in previous post.
Examples:
Input : 7 Output : * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Algorithm:-
step 1:- first think for the base condition i.e. number less than 0
step 2:-do the recursive calls till number less than 0 i.e:- printPartten(n-1, k+1);
step 3:-print the spaces
step 4:-then print * till number
Below is the implementation of above approach:
C++
// C++ program to print triangular patterns using Recursive #include <iostream> using namespace std; void printPartten( int n, int k) { if (n < 0) // Base condition return ; // Recursive call printPartten(n - 1, k + 1); int i; for (i = 0; i < k; i++) // it makes spaces cout << " " ; for (i = 0; i < n; i++) // for print * printf ( "* " ); printf ( "\n" ); // for next line } int main() { int n = 7; // Call to printPartten function printPartten(n, 0); return 0; } |
Java
// Java program to print triangular patterns using Recursive import java.io.*; public class GFG{ static void printPartten( int n, int k) { if (n < 0 ) // Base condition return ; // Recursive call printPartten(n - 1 , k + 1 ); int i; for (i = 0 ; i < k; i++) // it makes spaces System.out.printf( " " ); for (i = 0 ; i < n; i++) // for print * System.out.printf( "* " ); System.out.printf( "\n" ); // for next line } public static void main(String[]args) { int n = 7 ; // Call to printPartten function printPartten(n, 0 ); } } |
Python3
# Python 3 program to print triangular # patterns using Recursive def printPartten(n, k): if (n < 0 ): # Base condition return ; # Recursive call printPartten(n - 1 , k + 1 ); for i in range ( 0 , k): # it makes spaces print ( " " , end = ""); for i in range ( 0 , n): # for print * print ( "* " , end = ""); print ( "\n" , end = ""); # for next line # Driver Code n = 7 ; # Call to printPartten function printPartten(n, 0 ); # This code is contributed # by Akanksha Rai |
C#
// C# program to print triangular // patterns using Recursive using System; class GFG { static void printPartten( int n, int k) { if (n < 0) // Base condition return ; // Recursive call printPartten(n - 1, k + 1); int i; for (i = 0; i < k; i++) // it makes spaces Console.Write( " " ); for (i = 0; i < n; i++) // for print * Console.Write( "* " ); Console.Write( "\n" ); // for next line } // Driver Code public static void Main() { int n = 7; // Call to printPartten function printPartten(n, 0); } } // This code is contributed // by Subhadeep |
PHP
<?php // PHP program to print triangular // patterns using Recursive function printPartten( $n , $k ) { if ( $n < 0) // Base condition return ; // Recursive call printPartten( $n - 1, $k + 1); for ( $i = 0; $i < $k ; $i ++) // it makes spaces echo " " ; for ( $i = 0; $i < $n ; $i ++) // for print * echo ( "* " ); echo ( "\n" ); // for next line } // Driver Code $n = 7; // Call to printPartten function printPartten( $n , 0); // This code is contributed by jit_t ?> |
Javascript
<script> // javascript program to print triangular patterns using Recursive function printPartten(n , k) { if (n < 0) // Base condition return ; // Recursive call printPartten(n - 1, k + 1); var i; for (i = 0; i < k; i++) // it makes spaces document.write( " " ); for (i = 0; i < n; i++) // for print * document.write( "* " ); document.write( "<br/>" ); // for next line } var n = 7; // Call to printPartten function printPartten(n, 0); // This code is contributed by Rajput-Ji </script> |
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
Time Complexity: O(n2)
Auxiliary Space: O(n), The extra space is used in recursion call stack.
How to print its reverse pattern?
simply Just put the recursive line end of the function
Example:
Input : 7 Output : * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C++
// C++ program to print reverse triangular // patterns using Recursive #include <bits/stdc++.h> using namespace std; void printPartten( int n, int k) { if (n < 0) // Base condition return ; int i; for (i = 0; i < k; i++) // it makes spaces cout << " " ; for (i = 0; i < n; i++) // for print * cout << "* " ; cout << "\n" ; // for next line // Recursive calls printPartten(n - 1, k + 1); } int main() { int n = 7; // Call to printPartten function printPartten(n, 0); return 0; } // this code is contributed by shivanisinghss2110 |
C
// C program to print reverse triangular // patterns using Recursive #include <stdio.h> #include <stdlib.h> void printPartten( int n, int k) { if (n < 0) // Base condition return ; int i; for (i = 0; i < k; i++) // it makes spaces printf ( " " ); for (i = 0; i < n; i++) // for print * printf ( "* " ); printf ( "\n" ); // for next line // Recursive calls printPartten(n - 1, k + 1); } int main() { int n = 7; // Call to printPartten function printPartten(n, 0); return 0; } |
Java
// Java program to print reverse triangular // patterns using Recursive import java.io.*; public class GFG{ static void printPartten( int n, int k) { if (n < 0 ) // Base condition return ; int i; for (i = 0 ; i < k; i++) // it makes spaces System.out.print( " " ); for (i = 0 ; i < n; i++) // for print * System.out.print( "* " ); System.out.print( "\n" ); // for next line // Recursive calls printPartten(n - 1 , k + 1 ); } public static void main(String[] args) { int n = 7 ; // Call to printPartten function printPartten(n, 0 ); } } |
Python 3
# Python 3 program to print reverse # triangular patterns using Recursive def printPartten(n, k): if (n < 0 ): # Base condition return ; for i in range ( 0 , k): # it makes spaces print ( " " , end = "") for i in range ( 0 , n): # for print * print ( "*" , end = " " ) print ( "\n" , end = "") # for next line # Recursive calls printPartten(n - 1 , k + 1 ); # Driver Code n = 7 ; # Call to printPartten function printPartten(n, 0 ); # This code is contributed # by Akanksha Rai |
C#
// C# program to print reverse triangular // patterns using Recursive using System; class GFG { static void printPartten( int n, int k) { if (n < 0) // Base condition return ; int i; for (i = 0; i < k; i++) // it makes spaces Console.Write( " " ); for (i = 0; i < n; i++) // for print * Console.Write( "* " ); Console.Write( "\n" ); // for next line // Recursive calls printPartten(n - 1, k + 1); } // Driver Code public static void Main() { int n = 7; // Call to printPartten function printPartten(n, 0); } } // This code is contributed // by PrinciRaj1992 |
PHP
<?php // PHP program to print reverse triangular // patterns using Recursive function printPartten( $n , $k ) { if ( $n < 0) // Base condition return ; for ( $i = 0; $i < $k ; $i ++) // it makes spaces echo ( " " ); for ( $i = 0; $i < $n ; $i ++) // for print * echo ( "* " ); echo ( "\n" ); // for next line // Recursive calls printPartten( $n - 1, $k + 1); } // Driver Code $n = 7; // Call to printPartten function printPartten( $n , 0); // This code is contributed // by Mukul singh ?> |
Javascript
<script> // C++ program to print reverse triangular // patterns using Recursive function printPartten(n, k) { if (n < 0) // Base condition return ; let i; for (i = 0; i < k; i++) // it makes spaces document.write( " " ); for (i = 0; i < n; i++) // for print * document.write( "* " ); document.write( "<br>" ); // for next line // Recursive calls printPartten(n - 1, k + 1); } //driver code let n = 7; // Call to printPartten function printPartten(n, 0); // this code is contributed by shivanisinghss2110 </script> |
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
Time Complexity: O(n2)
Auxiliary Space: O(1), As the function becomes tail recursive no extra stack space is required.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!