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.
Example 1: Upper Part
Java
// Java Program to Print Upper Part of Mirror Upper Star// Triangle Pattern// Importing input output classesimport java.io.*;// Main Classclass 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); }} |
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
Example 2: Lower Part of the triangle
Java
// Java Program to Print Lower Part of Mirror Upper Star// Triangle Pattern// Importing input output classesimport java.io.*;// Main Classclass 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); }} |
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
Example 3: Complete Mirror Upper Star Triangle Pattern
Java
// Java Program to Print Mirror upper Star triangle Pattern// Importing input output classesimport java.io.*;// Main Classpublic 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); }} |
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
Time complexity: O(n2) where n is given input size
Auxiliary Space : O(1)

