Open In App
Related Articles

Java Program to Print Mirror Upper Star Triangle Pattern

Improve Article
Improve
Save Article
Save
Like Article
Like

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)
 


Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 17 Mar, 2023
Like Article
Save Article
Previous
Next
Similar Reads
Complete Tutorials