# Recursive program to print triangular patterns

Last Updated : 13 Mar, 2023

We have discussed iterative pattern printing in previous post

Examples:

```Input : 7
Output :
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *```

Algorithm:-
step 1:- first think for the base condition i.e. number less than 0
step 2:-do the recursive calls till number less than 0 i.e:- printPartten(n-1, k+1);
step 3:-print the spaces
step 4:-then print * till number

Below is the implementation of above approach:

## C++

 `// C++ program to print triangular patterns using Recursive ` `#include ` ` `  `using` `namespace` `std; ` `void` `printPartten(``int` `n, ``int` `k) ` `{ ` `    ``if` `(n < 0) ``// Base condition ` `        ``return``; ` ` `  `    ``// Recursive call ` `    ``printPartten(n - 1, k + 1);  ` ` `  `    ``int` `i; ` `    ``for` `(i = 0; i < k; i++) ``// it makes spaces ` `        ``cout << ``" "``; ` `    ``for` `(i = 0; i < n; i++) ``// for print * ` `        ``printf``(``"* "``); ` `    ``printf``(``"\n"``); ``// for next line ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `n = 7; ` ` `  `    ``// Call to printPartten function ` `    ``printPartten(n, 0);  ` `    ``return` `0; ` `} `

## Java

 `// Java program to print triangular patterns using Recursive ` `import` `java.io.*; ` `public` `class` `GFG{  ` `static` `void` `printPartten(``int` `n, ``int` `k)  ` `{  ` `    ``if` `(n < ``0``) ``// Base condition  ` `        ``return``;  ` ` `  `    ``// Recursive call  ` `    ``printPartten(n - ``1``, k + ``1``);  ` ` `  `    ``int` `i;  ` `    ``for` `(i = ``0``; i < k; i++) ``// it makes spaces  ` `        ``System.out.printf(``" "``);  ` `    ``for` `(i = ``0``; i < n; i++) ``// for print *  ` `        ``System.out.printf(``"* "``);  ` `    ``System.out.printf(``"\n"``); ``// for next line  ` `}  ` ` `  `public` `static` `void` `main(String[]args)  ` `{  ` `    ``int` `n = ``7``;  ` ` `  `    ``// Call to printPartten function  ` `    ``printPartten(n, ``0``);  ` `}  ` `}  `

## Python3

 `# Python 3 program to print triangular ` `# patterns using Recursive ` ` `  `def` `printPartten(n, k): ` `     `  `    ``if` `(n < ``0``): ``# Base condition ` `        ``return``; ` ` `  `    ``# Recursive call ` `    ``printPartten(n ``-` `1``, k ``+` `1``);  ` ` `  `    ``for` `i ``in` `range``(``0``, k): ``# it makes spaces ` `        ``print``(``" "``, end``=``""); ` `    ``for` `i ``in` `range``(``0``, n): ``# for print * ` `        ``print``(``"* "``, end ``=` `""); ` `    ``print``(``"\n"``, end``=``""); ``# for next line ` ` `  `# Driver Code ` `n ``=` `7``; ` ` `  `# Call to printPartten function ` `printPartten(n, ``0``);  ` ` `  `# This code is contributed  ` `# by Akanksha Rai `

## C#

 `// C# program to print triangular ` `// patterns using Recursive ` `using` `System; ` ` `  `class` `GFG ` `{  ` `static` `void` `printPartten(``int` `n, ``int` `k)  ` `{  ` `    ``if` `(n < 0) ``// Base condition  ` `        ``return``;  ` ` `  `    ``// Recursive call  ` `    ``printPartten(n - 1, k + 1);  ` ` `  `    ``int` `i;  ` `    ``for` `(i = 0; i < k; i++) ``// it makes spaces  ` `        ``Console.Write(``" "``);  ` `    ``for` `(i = 0; i < n; i++) ``// for print *  ` `        ``Console.Write(``"* "``);  ` `    ``Console.Write(``"\n"``); ``// for next line  ` `}  ` ` `  `// Driver Code ` `public` `static` `void` `Main()  ` `{  ` `    ``int` `n = 7;  ` ` `  `    ``// Call to printPartten function  ` `    ``printPartten(n, 0);  ` `}  ` `}  ` ` `  `// This code is contributed  ` `// by Subhadeep`

## PHP

 ` `

## Javascript

 ` `

Output:

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

Time Complexity: O(n2)
Auxiliary Space: O(n), The extra space is used in recursion call stack.

How to print its reverse pattern?
simply Just put the recursive line end of the function

Example:

```Input : 7
Output :
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*```

## C++

 `// C++ program to print reverse triangular  ` `// patterns using Recursive ` `#include ` `using` `namespace` `std; ` ` `  `void` `printPartten(``int` `n, ``int` `k) ` `{ ` `    ``if` `(n < 0) ``// Base condition ` `        ``return``; ` `    ``int` `i; ` `    ``for` `(i = 0; i < k; i++) ``// it makes spaces ` `        ``cout <<``" "``; ` `    ``for` `(i = 0; i < n; i++) ``// for print * ` `        ``cout <<``"* "``; ` `    ``cout <<``"\n"``; ``// for next line ` ` `  `    ``// Recursive calls ` `    ``printPartten(n - 1, k + 1);  ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `n = 7; ` ` `  `    ``// Call to printPartten function ` `    ``printPartten(n, 0);  ` `    ``return` `0; ` `} ` `// this code is contributed by shivanisinghss2110`

## C

 `// C program to print reverse triangular  ` `// patterns using Recursive ` `#include ` `#include ` ` `  `void` `printPartten(``int` `n, ``int` `k) ` `{ ` `    ``if` `(n < 0) ``// Base condition ` `        ``return``; ` `    ``int` `i; ` `    ``for` `(i = 0; i < k; i++) ``// it makes spaces ` `        ``printf``( ``" "``); ` `    ``for` `(i = 0; i < n; i++) ``// for print * ` `        ``printf``(``"* "``); ` `    ``printf``(``"\n"``); ``// for next line ` ` `  `    ``// Recursive calls ` `    ``printPartten(n - 1, k + 1);  ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `n = 7; ` ` `  `    ``// Call to printPartten function ` `    ``printPartten(n, 0);  ` `    ``return` `0; ` `} `

## Java

 `// Java program to print reverse triangular  ` `// patterns using Recursive  ` `import` `java.io.*; ` `public` `class` `GFG{  ` `static` `void` `printPartten(``int` `n, ``int` `k)  ` `{  ` `    ``if` `(n < ``0``) ``// Base condition  ` `        ``return``;  ` `    ``int` `i;  ` `    ``for` `(i = ``0``; i < k; i++) ``// it makes spaces  ` `        ``System.out.print(``" "``);  ` `    ``for` `(i = ``0``; i < n; i++) ``// for print *  ` `        ``System.out.print(``"* "``);  ` `    ``System.out.print(``"\n"``); ``// for next line  ` ` `  `    ``// Recursive calls  ` `    ``printPartten(n - ``1``, k + ``1``);  ` `}  ` ` `  `public` `static` `void` `main(String[] args)  ` `{  ` `    ``int` `n = ``7``;  ` ` `  `    ``// Call to printPartten function  ` `    ``printPartten(n, ``0``);  ` `} ` `}  `

## Python 3

 `# Python 3 program to print reverse  ` `# triangular patterns using Recursive ` ` `  `def` `printPartten(n, k): ` ` `  `    ``if` `(n < ``0``): ``# Base condition ` `        ``return``; ` `    ``for` `i ``in` `range``(``0``, k): ``# it makes spaces ` `        ``print``(``" "``, end ``=` `"") ` `    ``for` `i ``in` `range``(``0``, n): ``# for print * ` `        ``print``(``"*"``, end ``=` `" "``) ` `    ``print``(``"\n"``, end ``=` `"") ``# for next line ` ` `  `    ``# Recursive calls ` `    ``printPartten(n ``-` `1``, k ``+` `1``);  ` ` `  `# Driver Code ` `n ``=` `7``; ` ` `  `# Call to printPartten function ` `printPartten(n, ``0``);  ` ` `  `# This code is contributed  ` `# by Akanksha Rai `

## C#

 `// C# program to print reverse triangular  ` `// patterns using Recursive  ` `using` `System; ` ` `  `class` `GFG ` `{  ` `static` `void` `printPartten(``int` `n, ``int` `k)  ` `{  ` `    ``if` `(n < 0) ``// Base condition  ` `        ``return``;  ` `    ``int` `i;  ` `    ``for` `(i = 0; i < k; i++) ``// it makes spaces  ` `        ``Console.Write(``" "``);  ` `    ``for` `(i = 0; i < n; i++) ``// for print *  ` `        ``Console.Write(``"* "``);  ` `    ``Console.Write(``"\n"``); ``// for next line  ` ` `  `    ``// Recursive calls  ` `    ``printPartten(n - 1, k + 1);  ` `}  ` ` `  `// Driver Code ` `public` `static` `void` `Main()  ` `{  ` `    ``int` `n = 7;  ` ` `  `    ``// Call to printPartten function  ` `    ``printPartten(n, 0);  ` `}  ` `}  ` ` `  `// This code is contributed  ` `// by PrinciRaj1992 `

## PHP

 ` `

## Javascript

 ``

Output:

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

Time Complexity: O(n2)
Auxiliary Space: O(1), As the function becomes tail recursive no extra stack space is required.

Share your thoughts in the comments