Print the given pattern recursively
Given a positive integer n. Print the inverted triangular pattern (as described in the examples below) using the recursive approach.
Examples:
Input : n = 5
Output :
* * * * *
* * * *
* * *
* *
*
Input : n = 7
Output :
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
Method 1 (Using two recursive functions): One recursive function is used to get the row number and the other recursive function is used to print the stars of that particular row.
Algorithm:
printPatternRowRecur(n)
if n < 1
return
print "* "
printPatternRowRecur(n-1)
printPatternRecur(n)
if n < 1
return
printPatternRowRecur(n)
print "\n"
printPatternRecur(n-1)
C++
#include <bits/stdc++.h>
using namespace std;
void printPatternRowRecur( int n)
{
if (n < 1)
return ;
cout << "* " ;
printPatternRowRecur(n-1);
}
void printPatternRecur( int n)
{
if (n < 1)
return ;
printPatternRowRecur(n);
cout << endl;
printPatternRecur(n-1);
}
int main()
{
int n = 5;
printPatternRecur(n);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static void printPatternRowRecur( int n)
{
if (n < 1 )
return ;
System.out.print( "* " );
printPatternRowRecur(n - 1 );
}
static void printPatternRecur( int n)
{
if (n < 1 )
return ;
printPatternRowRecur(n);
System.out.println ();
printPatternRecur(n - 1 );
}
public static void main (String[] args)
{
int n = 5 ;
printPatternRecur(n);
}
}
|
Python3
def printPatternRowRecur(n):
if (n < 1 ):
return
print ( "*" , end = " " )
printPatternRowRecur(n - 1 )
def printPatternRecur(n):
if (n < 1 ):
return
printPatternRowRecur(n)
print ("")
printPatternRecur(n - 1 )
n = 5
printPatternRecur(n)
|
C#
using System;
class GFG
{
static void printPatternRowRecur( int n)
{
if (n < 1)
return ;
Console.Write( "* " );
printPatternRowRecur(n - 1);
}
static void printPatternRecur( int n)
{
if (n < 1)
return ;
printPatternRowRecur(n);
Console.WriteLine();
printPatternRecur(n - 1);
}
public static void Main()
{
int n = 5;
printPatternRecur(n);
}
}
|
PHP
<?php
function printPatternRowRecur( $n )
{
if ( $n < 1)
return ;
echo "* " ;
printPatternRowRecur( $n -1);
}
function printPatternRecur( $n )
{
if ( $n < 1)
return ;
printPatternRowRecur( $n );
echo "\n" ;
printPatternRecur( $n -1);
}
$n = 5;
printPatternRecur( $n );
?>
|
Javascript
<script>
function printPatternRowRecur(n)
{
if (n < 1)
return ;
document.write( "* " );
printPatternRowRecur(n - 1);
}
function printPatternRecur(n)
{
if (n < 1)
return ;
printPatternRowRecur(n);
document.write( "<br>" );
printPatternRecur(n - 1);
}
var n = 5;
printPatternRecur(n);
</script>
|
Output:
* * * * *
* * * *
* * *
* *
*
Time Complexity: O(n2)
Auxiliary Space: O(1)
Method 2 (Using single recursive function): This approach uses a single recursive function to print the entire pattern.
Algorithm:
printPatternRecur(n, i)
if n < 1
return
if i <= n
print "* "
printPatternRecur(n, i+1)
else
print "\n"
printPatternRecur(n-1, 1)
C++
#include <bits/stdc++.h>
using namespace std;
void printPatternRecur( int n, int i)
{
if (n < 1)
return ;
if (i <= n)
{
cout << "* " ;
printPatternRecur(n, i + 1);
}
else
{
cout << endl;
printPatternRecur(n-1, 1);
}
}
int main()
{
int n = 5;
printPatternRecur(n, 1);
return 0;
}
|
Java
import java.io.*;
class GFG {
static void printPatternRecur( int n, int i)
{
if (n < 1 )
return ;
if (i <= n)
{
System.out.print ( "* " );
printPatternRecur(n, i + 1 );
}
else
{
System.out.println( );
printPatternRecur(n - 1 , 1 );
}
}
public static void main (String[] args)
{
int n = 5 ;
printPatternRecur(n, 1 );
}
}
|
Python3
def printPatternRecur(n, i):
if (n < 1 ):
return
if (i < = n):
print ( "* " , end = "")
printPatternRecur(n, i + 1 )
else :
print ("")
printPatternRecur(n - 1 , 1 )
n = 5
printPatternRecur(n, 1 )
|
C#
using System;
class GFG {
static void printPatternRecur( int n, int i)
{
if (n < 1)
return ;
if (i <= n)
{
Console.Write ( "* " );
printPatternRecur(n, i + 1);
}
else
{
Console.WriteLine( );
printPatternRecur(n - 1, 1);
}
}
public static void Main ()
{
int n = 5;
printPatternRecur(n, 1);
}
}
|
PHP
<?php
function printPatternRecur( $n , $i )
{
if ( $n < 1)
return ;
if ( $i <= $n )
{
echo "* " ;
printPatternRecur( $n , $i + 1);
}
else
{
echo "\n" ;
printPatternRecur( $n - 1, 1);
}
}
$n = 5;
printPatternRecur( $n , 1);
?>
|
Javascript
<script>
function printPatternRecur(n, i)
{
if (n < 1)
return ;
if (i <= n)
{
document.write( "*" + " " );
printPatternRecur(n, i + 1);
}
else
{
document.write( "<br>" );
printPatternRecur(n - 1, 1);
}
}
var n = 5;
printPatternRecur(n, 1);
</script>
|
Output:
* * * * *
* * * *
* * *
* *
*
Time Complexity: O(n2)
Auxiliary Space: O(1)
Last Updated :
16 Feb, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...