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++ 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 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 );
} } |
# 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# 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 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 ?> |
<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++ 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 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 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 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# 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 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 ?> |
<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.