Programs for Printing Pyramid Patterns using Recursion (original) (raw)

Last Updated : 13 Jan, 2023

This article is aimed at giving a recursive implementation for pattern printing.

// C++ code to demonstrate star pattern #include using namespace std;

// function to print a row void printn(int num) { // base case if (num == 0) return; cout << "* ";

// recursively calling printn()
printn(num - 1);

}

// function to print the pattern void pattern(int n, int i) { // base case if (n == 0) return; printn(i); cout << endl;

// recursively calling pattern()
pattern(n - 1, i + 1);

}

// driver function int main() { int n = 5; pattern(n, 1); return 0; }

Java

// Java code to demonstrate star pattern import java.io.*;

class GFG {

// function to print a row static void printn(int num) { // base case if (num == 0) return; System.out.print ("* ");

// recursively calling printn()
printn(num - 1);

}

// function to print the pattern static void pattern(int n, int i) { // base case if (n == 0) return; printn(i); System.out.println();

// recursively calling pattern()
pattern(n - 1, i + 1);

}

// Driver code public static void main (String[] args) {

int n = 5;
pattern(n, 1);

} }

// This code is contributed by ajit.

Python3

Python3 code to demonstrate star pattern

function to print a row

def printn(num):

# base case
if (num == 0):
    return
print("*", end = " ")

# recursively calling printn()
printn(num - 1)

function to print the pattern

def pattern(n, i):

# base case
if (n == 0):
    return
printn(i)
print("\n", end = "")

# recursively calling pattern()
pattern(n - 1, i + 1)

Driver Code

if name == 'main': n = 5 pattern(n, 1)

This code is contributed by

Surendra_Gangwar

C#

// C# code to demonstrate star pattern using System;

class GFG {

// function to print a row static void printn(int num) { // base case if (num == 0) return; Console.Write("* ");

// recursively calling printn()
printn(num - 1);

}

// function to print the pattern static void pattern(int n, int i) { // base case if (n == 0) return; printn(i); Console.WriteLine();

// recursively calling pattern()
pattern(n - 1, i + 1);

}

// Driver code static public void Main () { int n = 5; pattern(n, 1); } }

// This code is contributed by akt_mit.

PHP

JavaScript

`

Output:

*




// C++ code to demonstrate star pattern

#include using namespace std;

// function to print spaces void print_space(int space) { // base case if (space == 0) return; cout << " " << " ";

// recursively calling print_space()
print_space(space - 1);

}

// function to print asterisks void print_asterisk(int asterisk) { // base case if (asterisk == 0) return; cout << "* ";

// recursively calling print_asterisk()
print_asterisk(asterisk - 1);

}

// function to print the pattern void pattern(int n, int num) { // base case if (n == 0) return; print_space(n - 1); print_asterisk(num - n + 1); cout << endl;

// recursively calling pattern()
pattern(n - 1, num);

}

// driver function int main() { int n = 5; pattern(n, n); return 0; }

Java

// Java code to demonstrate star pattern import java.util.*;

class GFG {

// function to print spaces 
static void print_space(int space)
{
    // base case 
    if (space == 0) 
    {
        return;
    }
    System.out.print(" " + " ");

    // recursively calling print_space() 
    print_space(space - 1);
}

// function to print asterisks 
static void print_asterisk(int asterisk)
{
    // base case 
    if (asterisk == 0)
    {
        return;
    }
    System.out.print("* ");

    // recursively calling print_asterisk() 
    print_asterisk(asterisk - 1);
}

// function to print the pattern 
static void pattern(int n, int num)
{
    // base case 
    if (n == 0)
    {
        return;
    }
    print_space(n - 1);
    print_asterisk(num - n + 1);
    System.out.println();

    // recursively calling pattern() 
    pattern(n - 1, num);
}

// Driver code 
public static void main(String[] args) 
{
    int n = 5;
    pattern(n, n);
}

}

// This code is contributed by Rajput-Ji

Python3

Python3 code to demonstrate star pattern

function to print spaces

def print_space(space):

# base case
if (space == 0):
    return;

print(" ", end=" ");

# recursively calling print_space()
print_space(space - 1);

function to print asterisks

def print_asterisk(asterisk):

# base case
if (asterisk == 0):
    return;

print("*", end =" ");

# recursively calling print_asterisk()
print_asterisk(asterisk - 1);

function to print the pattern

def pattern(n, num):

# base case
if (n == 0):
    return;

print_space(n - 1);
print_asterisk(num - n + 1);
print();

# recursively calling pattern()
pattern(n - 1, num);

Driver code

if name == 'main': n = 5; pattern(n, n);

This code is contributed by 29AjayKumar

C#

// C# code to demonstrate star pattern using System;

class GFG {

// function to print spaces static void print_space(int space) { // base case if (space == 0) return; Console.Write(" " + " ");

// recursively calling print_space()
print_space(space - 1);

}

// function to print asterisks static void print_asterisk(int asterisk) { // base case if (asterisk == 0) return; Console.Write("* ");

// recursively calling print_asterisk()
print_asterisk(asterisk - 1);

}

// function to print the pattern static void pattern(int n, int num) { // base case if (n == 0) return; print_space(n - 1); print_asterisk(num - n + 1); Console.WriteLine();

// recursively calling pattern()
pattern(n - 1, num);

}

// Driver code public static void Main() { int n = 5; pattern(n, n); } }

// This code is contributed by Akanksha Rai

PHP

JavaScript

`

Output:

    * 
  * * 
* * * 


// C++ code to demonstrate star pattern

#include using namespace std;

// function to print spaces void print_space(int space) { // base case if (space == 0) return; cout << " ";

// recursively calling print_space()
print_space(space - 1);

}

// function to print asterisks void print_asterisk(int asterisk) { // base case if (asterisk == 0) return; cout << "* ";

// recursively calling asterisk()
print_asterisk(asterisk - 1);

}

// function to print the pattern void pattern(int n, int num) { // base case if (n == 0) return; print_space(n - 1); print_asterisk(num - n + 1); cout << endl;

// recursively calling pattern()
pattern(n - 1, num);

}

// driver function int main() { int n = 5; pattern(n, n); return 0; }

Java

// Java code to demonstrate star pattern import java.util.*;

class GFG {

// function to print spaces static void print_space(int space) { // base case if (space == 0) return; System.out.print(" ");

// recursively calling print_space()
print_space(space - 1);

}

// function to print asterisks static void print_asterisk(int asterisk) { // base case if (asterisk == 0) return; System.out.print("* ");

// recursively calling asterisk()
print_asterisk(asterisk - 1);

}

// function to print the pattern static void pattern(int n, int num) { // base case if (n == 0) return; print_space(n - 1); print_asterisk(num - n + 1); System.out.println("");

// recursively calling pattern()
pattern(n - 1, num);

}

// Driver code public static void main(String[] args) { int n = 5; pattern(n, n); } }

// This code is contributed by 29AjayKumar

Python3

Python3 code to demonstrate star pattern

function to print spaces

def print_space(space):

# base case
if (space == 0):
    return;
print(" ", end = "");

# recursively calling print_space()
print_space(space - 1);

function to print asterisks

def print_asterisk(asterisk):

# base case
if(asterisk == 0):
    return;
print("* ", end = "");

# recursively calling asterisk()
print_asterisk(asterisk - 1);

function to print the pattern

def pattern(n, num):

# base case
if (n == 0):
    return;
print_space(n - 1);
print_asterisk(num - n + 1);
print("");

# recursively calling pattern()
pattern(n - 1, num);

Driver Code

n = 5; pattern(n, n);

This code contributed by PrinciRaj1992

C#

// C# code to demonstrate star pattern using System;

class GFG {

// function to print spaces static void print_space(int space) { // base case if (space == 0) return; Console.Write(" ");

// recursively calling print_space()
print_space(space - 1);

}

// function to print asterisks static void print_asterisk(int asterisk) { // base case if (asterisk == 0) return; Console.Write("* ");

// recursively calling asterisk()
print_asterisk(asterisk - 1);

}

// function to print the pattern static void pattern(int n, int num) { // base case if (n == 0) return; print_space(n - 1); print_asterisk(num - n + 1); Console.WriteLine("");

// recursively calling pattern()
pattern(n - 1, num);

}

// Driver code public static void Main(String[] args) { int n = 5; pattern(n, n); } }

// This code is contributed by 29AjayKumar

PHP

JavaScript

`

Output:

* 



// C++ code to demonstrate printing pattern of numbers

#include using namespace std;

// function to print a row void print_row(int no, int val) { // base case if (no == 0) return; cout << val << " ";

// recursively calling print_row()
print_row(no - 1, val);

}

// function to print the pattern void pattern(int n, int num) { // base case if (n == 0) return; print_row(num - n + 1, num - n + 1); cout << endl;

// recursively calling pattern()
pattern(n - 1, num);

} int main() { int n = 5; pattern(n, n); }

Java

// Java code to demonstrate printing // pattern of numbers class GFG {

// function to print a row static void print_row(int no, int val) { // base case if (no == 0) return; System.out.print(val + " ");

// recursively calling print_row()
print_row(no - 1, val);

}

// function to print the pattern static void pattern(int n, int num) { // base case if (n == 0) return; print_row(num - n + 1, num - n + 1); System.out.println();

// recursively calling pattern()
pattern(n - 1, num);

}

// Driver Code public static void main(String[] args) { int n = 5; pattern(n, n); } }

// This code is contributed by Code_Mech.

Python3

Python3 code to demonstrate printing

pattern of numbers

function to print a row

def print_row(no, val):

# base case
if (no == 0):
    return;
print(val , end=" ");

# recursively calling print_row()
print_row(no - 1, val);

function to print the pattern

def pattern(n, num): # base case if (n == 0): return; print_row(num - n + 1, num - n + 1); print("");

# recursively calling pattern()
pattern(n - 1, num);

Driver Code

n = 5; pattern(n, n);

This code contributed by PrinciRaj1992

C#

// C# code to demonstrate printing // pattern of numbers using System;

class GFG {

// function to print a row static void print_row(int no, int val) { // base case if (no == 0) return; Console.Write(val + " ");

// recursively calling print_row()
print_row(no - 1, val);

}

// function to print the pattern static void pattern(int n, int num) { // base case if (n == 0) return; print_row(num - n + 1, num - n + 1); Console.WriteLine();

// recursively calling pattern()
pattern(n - 1, num);

}

// Driver Code public static void Main() { int n = 5; pattern(n, n); } }

// This code is contributed by Akanksha Rai

PHP

num−num - numn + 1); echo "\n"; // recursively calling pattern() pattern($n - 1, $num); } // Driver Code $n = 5; pattern($n, $n); // This code is contributed // by Akanksha Rai ?>

JavaScript

`

Output:

1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

// C++ code to demonstrate printing pattern of numbers

#include using namespace std;

// function to print a row int print_row(int ct, int num) { // base case if (num == 0) return ct; cout << ct << "\t";

// recursively calling print_row()
print_row(ct + 1, num - 1);

}

// function to print the pattern void pattern(int n, int count, int num) { // base case if (n == 0) return; count = print_row(count, num); cout << endl;

// recursively calling pattern()
pattern(n - 1, count, num + 1);

}

// driver function int main() { int n = 5; pattern(n, 1, 1); }

Java

// Java code to demonstrate // printing pattern of numbers import java.io.*;

class GFG {

// function to print a row static int print_row(int ct, int num) { // base case if (num == 0) return ct; System.out.print(ct + " ");

// recursively calling print_row()
return print_row(ct + 1, num - 1);

}

// function to print the pattern static void pattern(int n, int count, int num) { // base case if (n == 0) return; count = print_row(count, num); System.out.println();

// recursively calling pattern()
pattern(n - 1, count, num + 1);

}

// Driver Code public static void main (String[] args) { int n = 5; pattern(n, 1, 1); } }

// This code is contributed by Tushil

Python3

Python3 code to demonstrate

printing pattern of numbers

function to print a row

def print_row(ct, num):

# base case
if (num == 0):
    return ct;
print(ct, end = " ");

# recursively calling print_row()
return print_row(ct + 1, num - 1);

function to print the pattern

def pattern(n, count, num):

# base case
if (n == 0):
    return;
count = print_row(count, num);
print();

# recursively calling pattern()
pattern(n - 1, count, num + 1);

Driver Code

if name == 'main': n = 5; pattern(n, 1, 1);

This code is contributed by 29AjayKumar

C#

// C# code to demonstrate // printing pattern of numbers using System;

class GFG {

// function to print a row static int print_row(int ct, int num) { // base case if (num == 0) return ct; Console.Write (ct + " ");

// recursively calling print_row()
return print_row(ct + 1, num - 1);

}

// function to print the pattern static void pattern(int n, int count, int num) { // base case if (n == 0) return; count = print_row(count, num); Console.WriteLine();

// recursively calling pattern()
pattern(n - 1, count, num + 1);

}

// Driver Code static public void Main () { int n = 5; pattern(n, 1, 1); } }

// This code is contributed by ajit

JavaScript

`

Output:

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

// C++ code to demonstrate printing pattern of alphabets

#include using namespace std;

// function to print a row void print_row(int no, int val) { // base case if (no == 0) return; cout << (char)(val + 64) << " ";

// recursively calling print_row()
print_row(no - 1, val);

}

// function to print the pattern void pattern(int n, int num) { // base case if (n == 0) return; print_row(num - n + 1, num - n + 1); cout << endl;

// recursively calling pattern()
pattern(n - 1, num);

} int main() { int n = 5; pattern(n, n); }

Java

// Java code to demonstrate printing pattern of alphabets class GFG {

// function to print a row static void print_row(int no, int val) { // base case if (no == 0) return; System.out.print((char)(val + 64) + " ");

// recursively calling print_row()
print_row(no - 1, val);

}

// function to print the pattern static void pattern(int n, int num) { // base case if (n == 0) return; print_row(num - n + 1, num - n + 1); System.out.println();

// recursively calling pattern()
pattern(n - 1, num);

}

// Driver code public static void main(String[] args) { int n = 5; pattern(n, n); } }

// This code is contributed by Rajput-Ji

Python3

Python3 code to demonstrate printing pattern of alphabets

function to print a row

def print_row(no, val): # base case if (no == 0): return; print(chr(val + 64), end=" ");

# recursively calling print_row()
print_row(no - 1, val);

function to print the pattern

def pattern(n, num): # base case if (n == 0): return; print_row(num - n + 1, num - n + 1); print();

# recursively calling pattern()
pattern(n - 1, num);

Driver code

if name == 'main': n = 5; pattern(n, n);

This code is contributed by 29AjayKumar

C#

// C# code to demonstrate printing pattern of alphabets using System;

class GFG {

// function to print a row static void print_row(int no, int val) { // base case if (no == 0) return; Console.Write((char)(val + 64) + " ");

// recursively calling print_row()
print_row(no - 1, val);

}

// function to print the pattern static void pattern(int n, int num) { // base case if (n == 0) return; print_row(num - n + 1, num - n + 1); Console.WriteLine();

// recursively calling pattern()
pattern(n - 1, num);

}

// Driver code public static void Main(String[] args) { int n = 5; pattern(n, n); } }

// This code is contributed by 29AjayKumar

JavaScript

`

Output:

A B B C C C D D D D E E E E E

#include using namespace std;

// function to print a row int print_row(int ct, int num) { // base case if (num == 0) return ct; cout << (char)(ct + 64) << " ";

// recursively calling print_row()
print_row(ct + 1, num - 1);

}

// function to print the pattern void pattern(int n, int count, int num) { // base case if (n == 0) return; count = print_row(count, num); cout << endl;

// recursively calling pattern()
pattern(n - 1, count, num + 1);

}

// driver function int main() { int n = 5; pattern(n, 1, 1); }

Java

class GFG {

// function to print a row static int print_row(int ct, int num) { // base case if (num == 0) return ct; System.out.print((char)(ct + 64) + " ");

// recursively calling print_row()
print_row(ct + 1, num - 1);
return num + ct;

}

// function to print the pattern static void pattern(int n, int count, int num) { // base case if (n == 0) return; count = print_row(count, num); System.out.println();

// recursively calling pattern()
pattern(n - 1, count, num + 1);

}

// Driver code public static void main(String[] args) { int n = 5; pattern(n, 1, 1); } }

// This code is contributed by 29AjayKumar

Python3

function to print row

def print_row(ct, num):

# base case
if (num == 0):
    return ct;
print(chr(ct + 64), end=" ");

# recursively calling print_row()
print_row(ct + 1, num - 1);
return num + ct;

function to print the pattern

def pattern(n, count, num):

# base case
if (n == 0):
    return;
count = print_row(count, num);
print();

# recursively calling pattern()
pattern(n - 1, count, num + 1);

Driver code

if name == 'main': n = 5; pattern(n, 1, 1);

This code is contributed by Rajput-Ji

C#

using System;

class GFG {

// function to print a row static int print_row(int ct, int num) { // base case if (num == 0) return ct; Console.Write((char)(ct + 64) + " ");

// recursively calling print_row()
print_row(ct + 1, num - 1);
return num + ct;

}

// function to print the pattern static void pattern(int n, int count, int num) { // base case if (n == 0) return; count = print_row(count, num); Console.WriteLine();

// recursively calling pattern()
pattern(n - 1, count, num + 1);

}

// Driver code public static void Main(String[] args) { int n = 5; pattern(n, 1, 1); } }

// This code is contributed by 29AjayKumar

JavaScript

`

Output:

A B C D E F G H I J K L M N O

Time Complexity and Space Complexity of the above Programs

Time Complexity: O(n2)
Auxiliary Space: O(n2), due to recursion stack.