Recursive program to print triangular patterns

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 <iostream> 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
<?php // PHP program to print triangular // patterns using Recursive function printPartten($n, $k) { if ($n < 0) // Base condition return; // Recursive call printPartten($n - 1, $k + 1); for ($i = 0; $i < $k; $i++) // it makes spaces echo " "; for ($i = 0; $i < $n; $i++) // for print * echo ("* "); echo ("\n"); // for next line } // Driver Code $n = 7; // Call to printPartten function printPartten($n, 0); // This code is contributed by jit_t ?> |
Javascript
<script> // javascript program to print triangular patterns using Recursive function printPartten(n , k) { if (n < 0) // Base condition return; // Recursive call printPartten(n - 1, k + 1); var i; for (i = 0; i < k; i++) // it makes spaces document.write(" "); for (i = 0; i < n; i++) // for print * document.write("* "); document.write("<br/>"); // for next line } var n = 7; // Call to printPartten function printPartten(n, 0); // This code is contributed by Rajput-Ji </script> |
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 <bits/stdc++.h> 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 <stdio.h> #include <stdlib.h> 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
<?php // PHP program to print reverse triangular // patterns using Recursive function printPartten($n, $k) { if ($n < 0) // Base condition return; for ($i = 0; $i < $k; $i++) // it makes spaces echo(" "); for ($i = 0; $i < $n; $i++) // for print * echo("* "); echo("\n"); // 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 Mukul singh ?> |
Javascript
<script> // C++ program to print reverse triangular // patterns using Recursive function printPartten(n, k) { if (n < 0) // Base condition return; let i; for (i = 0; i < k; i++) // it makes spaces document.write(" "); for (i = 0; i < n; i++) // for print * document.write("* "); document.write("<br>"); // for next line // Recursive calls printPartten(n - 1, k + 1); } //driver code let n = 7; // Call to printPartten function printPartten(n, 0); // this code is contributed by shivanisinghss2110 </script> |
Output:
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
Time Complexity: O(n2)
Auxiliary Space: O(1), As the function becomes tail recursive no extra stack space is required.
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



