Thursday, October 9, 2025
HomeLanguagesJavaJava Program to Print Mirror Upper Star Triangle Pattern

Java Program to Print Mirror Upper Star Triangle Pattern

The pattern has two parts – both mirror reflections of each other. The base of the triangle has to be at the bottom of the imaginary mirror and the tip at the top.

Illustration:

Input:
size = 7

Output:

      * 
     * * 
    * * * 
   * * * * 
  * * * * * 
 * * * * * * 
* * * * * * * 
* * * * * * * 
 * * * * * * 
  * * * * * 
   * * * * 
    * * * 
     * * 
      * 

Approach: 

Divide pattern into sub-patterns

  • Divide this into two parts
    • Upper part
    • Lower part
  • Both parts are a mirror reflection of each other. And each part comprises 2 triangles. Therefore, In total, we have to print 4 triangles to get the desired pattern.

ava Program to Print Mirror Upper Star Triangle Pattern

Example 1: Upper Part

Java




// Java Program to Print Upper Part of Mirror Upper Star
// Triangle Pattern
 
// Importing input output classes
import java.io.*;
 
// Main Class
class GFG {
 
    // Method 1
    // To print upper part of the pattern
    private static void displayUpperPart(int size)
    {
 
        // Declaring variables for rows and columns
        // respectively
        int m, n;
 
        // Outer loop for rows
        for (m = size - 1; m >= 0; m--) {
 
            // Inner loop 1
            // to print triangle 1
            for (n = 0; n < m; n++) {
 
                // Printing whitespace
                System.out.print(" ");
            }
 
            // Inner loop 2
            // to print triangle 2
            for (n = m; n <= size - 1; n++) {
 
                // Printing star with whitespace
                System.out.print("*"
                                 + " ");
            }
 
            // By now done with one row so next line
            System.out.println();
        }
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing variables to
        // size of the triangle
        int size = 7;
 
        // Calling the above Method 1 to
        // print and display the upper part of triangle
        displayUpperPart(size);
    }
}


 
 

Output

      * 
     * * 
    * * * 
   * * * * 
  * * * * * 
 * * * * * * 
* * * * * * * 

 

Example 2: Lower Part of the triangle 

 

Java




// Java Program to Print Lower Part of Mirror Upper Star
// Triangle Pattern
 
// Importing input output classes
import java.io.*;
 
// Main Class
class GFG {
 
    // Method 1
    // To print lower part of the pattern
    private static void displayLowerPart(int size)
    {
 
        // Declaring variables for rows and columns
        // respectively
        int m, n;
 
        // Outer loop fo Rows
        for (m = 1; m <= size; m++) {
 
            // Inner loop 1 to print triangle 3
            for (n = 1; n < m; n++) {
 
                // Printing whitespace
                System.out.print(" ");
            }
 
            // Inner loop 2 to print triangle 4
            for (n = m; n <= size; n++) {
 
                // Printing star and whitespace
                System.out.print("*"
                                 + " ");
            }
 
            // By now done with one row so new line
            System.out.println();
        }
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing variable to
        // size of the triangle
        // This is number of rows
        int size = 7;
 
        // Calling the above Method1
        // to display lower part of the triangle
        displayLowerPart(size);
    }
}


 
 

Output

* * * * * * * 
 * * * * * * 
  * * * * * 
   * * * * 
    * * * 
     * * 
      * 

 

Example 3: Complete Mirror Upper Star Triangle Pattern

 

Java




// Java Program to Print Mirror upper Star triangle Pattern
 
// Importing input output classes
import java.io.*;
 
// Main Class
public class GFG {
 
    // Method 1
    // To print upper part of the pattern
    private static void displayUpperPart(int size)
    {
 
        // Declaring variables for rows and columns
        // respectively
        int m, n;
 
        // Outer loop for rows
        for (m = size - 1; m >= 0; m--) {
 
            // Inner loop 1
            for (n = 0; n < m; n++) {
 
                // Printing whitespace
                System.out.print(" ");
            }
 
            // Inner loop 2
            for (n = m; n <= size - 1; n++) {
 
                // Printing star with whitespace
                System.out.print("*"
                                 + " ");
            }
 
            // By now we are done with one row so new line
            System.out.println();
        }
    }
 
    // Method 2
    // To print lower part of the pattern
    private static void displayLowerPart(int size)
    {
 
        // Declaring variables for rows and columns
        // respectively
        int m, n;
 
        // Outer loop for rows
        for (m = 1; m <= size; m++) {
 
            // Inner loop 1
            for (n = 1; n < m; n++) {
 
                // Printing whitespace
                System.out.print(" ");
            }
 
            // Inner loop 2
            for (n = m; n <= size; n++) {
 
                // Printing star and whitespace
                System.out.print("*"
                                 + " ");
            }
 
            // By now we are done with one row so new line
            System.out.println();
        }
    }
 
    // Method 3
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing variable to
        // size of the triangle
        int size = 7;
 
        // Calling Method 1 to
        // display the upper part
        displayUpperPart(size);
 
        // Calling Method 2 to
        // display lower part
        displayLowerPart(size);
    }
}


 
 

Output

      * 
     * * 
    * * * 
   * * * * 
  * * * * * 
 * * * * * * 
* * * * * * * 
* * * * * * * 
 * * * * * * 
  * * * * * 
   * * * * 
    * * * 
     * * 
      * 

Time complexity: O(n2) where n is given input size
Auxiliary Space : O(1)
 

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32342 POSTS0 COMMENTS
Milvus
87 POSTS0 COMMENTS
Nango Kala
6712 POSTS0 COMMENTS
Nicole Veronica
11875 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11937 POSTS0 COMMENTS
Shaida Kate Naidoo
6833 POSTS0 COMMENTS
Ted Musemwa
7092 POSTS0 COMMENTS
Thapelo Manthata
6786 POSTS0 COMMENTS
Umr Jansen
6789 POSTS0 COMMENTS