Skip to content
Related Articles

Related Articles

Improve Article

Print the given pattern recursively

  • Difficulty Level : Easy
  • Last Updated : 11 May, 2021

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

Javascript




<script>
 
// JavaScript implementation to prvar 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
    document.write( "* ");
    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
    document.write("<br>");
     
    // print stars of the
    // remaining rows recursively
    printPatternRecur(n - 1);
     
}
 
// Driver program to test above
var n = 5;
printPatternRecur(n);
 
// This code is contributed by Amit Katiyar
 
</script>

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

Python3




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

Javascript




<script>
 
// JavaScript 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)
    {
        document.write("*" + "  ");
         
        // Recursively print rest of the stars
        // of the row
        printPatternRecur(n, i + 1);
    }
    else
    {
         
        // Change line
        document.write("<br>");
         
        // Print stars of the remaining
        // rows recursively
        printPatternRecur(n - 1, 1);
    }
}
 
// Driver code
var n = 5;
printPatternRecur(n, 1);
 
// This code is contributed by rdtank
 
</script>

Output: 

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

This article is contributed by Ayush Jauhari. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.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.
 

Attention reader! Don’t stop learning now. Join the First-Step-to-DSA Course for Class 9 to 12 students , specifically designed to introduce data structures and algorithms to the class 9 to 12 students




My Personal Notes arrow_drop_up
Recommended Articles
Page :