Skip to content
Related Articles

Related Articles

Print the given pattern recursively
  • Difficulty Level : Easy
  • Last Updated : 11 Feb, 2019

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




// 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;
}


Java




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


Python3




# 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


C#




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


PHP




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


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




// 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;    
}


Java




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


Python 3




# 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


C#




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


PHP




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


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
Recommended Articles
Page :