Related Articles

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

 ``

## Javascript

 ``

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

 ``

## Javascript

 ``

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. Participate in the Scholorship Test for First-Step-to-DSA Course for Class 9 to 12 students.

My Personal Notes arrow_drop_up