# Print the given pattern recursively

• Difficulty Level : Easy
• Last Updated : 10 Nov, 2022

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

```* * * * *
* * * *
* * *
* *
*```

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

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

```* * * * *
* * * *
* * *
* *
*```

Time Complexity: O(n2)
Auxiliary Space: O(1)

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 review-team@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