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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation to print the given
// pattern recursively
#include <bits/stdc++.h>
using namespace std;
  
// function to print the 'n-th' row of the
// pattern recursively
void printPatternRowRecur(int n)
{
    // base condition
    if (n < 1)
        return;
          
    // print the remnaining stars of the n-th row
    // recursively    
    cout << "* ";
    printPatternRowRecur(n-1);
}
  
void printPatternRecur(int n)
{
    // base condition
    if (n < 1)
        return;
      
    // print the stars of the n-th row    
    printPatternRowRecur(n);    
      
    // move to next line
    cout << endl;
      
    // print stars of the remaining rows recursively
    printPatternRecur(n-1);
      
}
  
// Driver program to test above
int main()
{
    int n = 5;
    printPatternRecur(n);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// java implementation to print the given
// pattern recursively
import java.io.*;
  
class GFG
{
    // function to print the 'n-th' row 
    // of the pattern recursively
    static void printPatternRowRecur(int n)
    {
        // base condition
        if (n < 1)
            return;
              
        // print the remnaining stars 
        // of the n-th row recursively 
        System.out.print( "* ");
        printPatternRowRecur(n - 1);
    }
      
    static void printPatternRecur(int n)
    {
        // base condition
        if (n < 1)
            return;
          
        // print the stars of the n-th row 
        printPatternRowRecur(n); 
          
        // move to next line
        System.out.println ();
          
        // print stars of the 
        // remaining rows recursively
        printPatternRecur(n - 1);
          
    }
  
    // Driver program to test above
    public static void main (String[] args) 
    {
        int n = 5;
        printPatternRecur(n);
          
    }
}
//This code is contributed by vt_m

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 implementation 
# to print the given 
# pattern recursively
  
# function to print the
# 'n-th' row of the
# pattern recursively
def printPatternRowRecur(n):
  
    # base condition
    if (n < 1):
        return
          
    # print the remnaining 
    # stars of the n-th row
    # recursively 
    print("*", end = " ")
    printPatternRowRecur(n - 1)
  
def printPatternRecur(n):
  
    # base condition
    if (n < 1):
        return
      
    # print the stars of
    # the n-th row 
    printPatternRowRecur(n) 
      
    # move to next line
    print("")
      
    # print stars of the 
    # remaining rows recursively
    printPatternRecur(n - 1)
      
# Driver Code
n = 5
printPatternRecur(n)
  
# This code is contributed
# by Smitha

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation to print the given
// pattern recursively
using System;
class GFG
{
    // function to print the 'n-th' row 
    // of the pattern recursively
    static void printPatternRowRecur(int n)
    {
        // base condition
        if (n < 1)
            return;
              
        // print the remnaining stars 
        // of the n-th row recursively 
        Console.Write( "* ");
        printPatternRowRecur(n - 1);
    }
      
    static void printPatternRecur(int n)
    {
        // base condition
        if (n < 1)
            return;
          
        // print the stars of the n-th row 
        printPatternRowRecur(n); 
          
        // move to next line
         Console.WriteLine();
          
        // print stars of the 
        // remaining rows recursively
        printPatternRecur(n - 1);
          
    }
  
    // Driver program to test above
    public static void Main() 
    {
        int n = 5;
        printPatternRecur(n);
          
    }
}
//This code is contributed by vt_m

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// php implementation to print the given
// pattern recursively
  
// function to print the 'n-th' row 
// of the pattern recursively
function printPatternRowRecur($n)
{
      
    // base condition
    if ($n < 1)
        return;
          
    // print the remnaining stars of 
    // the n-th row recursively 
    echo "* ";
    printPatternRowRecur($n-1);
}
  
function printPatternRecur($n)
{
    // base condition
    if ($n < 1)
        return;
      
    // print the stars of the n-th row 
    printPatternRowRecur($n); 
      
    // move to next line
    echo "\n";
      
    // print stars of the remaining
    // rows recursively
    printPatternRecur($n-1);
      
}
  
    // Driver code 
    $n = 5;
    printPatternRecur($n);
  
// This code is contributed by mits 
?>

chevron_right


Output:

* * * * *
* * * *
* * *
* *
*

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation to print the given pattern recursively
#include <bits/stdc++.h>
  
using namespace std;
  
// function to print the given pattern recursively
void printPatternRecur(int n, int i)
{
    // base condition
    if (n < 1)
        return;
      
    // to print the stars of a particular row
    if (i <= n)
    {
        cout << "* ";
          
        // recursively print rest of the stars 
        // of the row
        printPatternRecur(n, i + 1);
    }    
      
    else
    {
        // change line
        cout << endl;
          
        // print stars of the remaining rows recursively
        printPatternRecur(n-1, 1);
    }
}
  
// Driver program to test above
int main()
{
    int n = 5;
    printPatternRecur(n, 1);
    return 0;    
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// java implementation to 
// print the given pattern recursively
import java.io.*;
  
class GFG {
      
    // function to print the
    // given pattern recursively
    static void printPatternRecur(int n, int i)
    {
        // base condition
        if (n < 1)
            return;
          
        // to print the stars of 
        // a particular row
        if (i <= n)
        {
            System.out.print ( "* ");
              
            // recursively print rest  
            // of the stars of the row
            printPatternRecur(n, i + 1);
        
          
        else
        {
            // change line
            System.out.println( );
              
            // print stars of the 
            // remaining rows recursively
            printPatternRecur(n - 1, 1);
        }
    }
      
    // Driver program 
    public static void main (String[] args) 
    {
        int n = 5;
        printPatternRecur(n, 1);
          
    }
}
  
// This code is contributed by vt_m

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation to print the 
# given pattern recursively
  
# function to print the given pattern
# recursively
def printPatternRecur(n, i):
  
    # base condition
    if (n < 1):
        return
      
    # to print the stars of a
    # particular row
    if (i <= n):
      
        print("* ", end = "")
          
        # recursively print rest of
        # the stars of the row
        printPatternRecur(n, i + 1)
      
    else:
      
        # change line
        print("")
          
        # print stars of the remaining
        # rows recursively
        printPatternRecur(n-1, 1)
  
# Driver program to test above
n = 5
printPatternRecur(n, 1)
  
# This code is contributed by Smitha

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation to 
// print the given pattern recursively
using System;
class GFG {
      
    // function to print the
    // given pattern recursively
    static void printPatternRecur(int n, int i)
    {
        // base condition
        if (n < 1)
            return;
          
        // to print the stars of 
        // a particular row
        if (i <= n)
        {
            Console.Write ( "* ");
              
            // recursively print rest 
            // of the stars of the row
            printPatternRecur(n, i + 1);
        
          
        else
        {
            // change line
            Console.WriteLine( );
              
            // print stars of the 
            // remaining rows recursively
            printPatternRecur(n - 1, 1);
        }
    }
      
    // Driver program 
    public static void Main () 
    {
        int n = 5;
        printPatternRecur(n, 1);
          
    }
}
  
// This code is contributed by vt_m

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// php implementation to print
// the given pattern recursively
  
// function to print the given 
// pattern recursively
function printPatternRecur($n, $i)
{
      
    // base condition
    if ($n < 1)
        return;
      
    // to print the stars of 
    // a particular row
    if ($i <= $n)
    {
        echo "* ";
          
        // recursively print rest of 
        // the stars  of the row
        printPatternRecur($n, $i + 1);
    
      
    else
    {
        // change line
        echo "\n";
          
        // print stars of the remaining
        // rows recursively
        printPatternRecur($n - 1, 1);
    }
}
  
    // Driver code
    $n = 5;
    printPatternRecur($n, 1);
  
// This code is contributed by mits 
?>

chevron_right


Output:

* * * * *
* * * *
* * *
* *
*

This article is contributed by Ayush Jauhari. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up